如何在Python中使用str.format截断字符串?
如何在Python中使用 str.format
来截断字符串?这可能吗?
在格式规范迷你语言中提到了一个 width
参数:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
...
width ::= integer
...
但是,指定这个参数似乎只适用于填充,而不是截断:
>>> '{:5}'.format('aaa')
'aaa '
>>> '{:5}'.format('aaabbbccc')
'aaabbbccc'
所以这更像是一个最小宽度,而不是真正的宽度。
我知道可以对字符串进行切片,但我处理的数据是完全动态的,包括格式字符串和传入的参数。我不能直接去切片。
2 个回答
10
你可以仅通过精度参数来截断:
>>> '{:.1}'.format('aaabbbccc')
'a'
大小参数是用来设置填充大小的:
>>> '{:3}'.format('ab')
' ab'
亚历克斯
112
使用 .precision
来代替:
>>> '{:5.5}'.format('aaabbbccc')
'aaabb'
根据 格式规范小语言 的说明:
精度是一个小数,表示在格式化为
'f'
和'F'
的浮点数值时,小数点后应该显示多少位数字;而在格式化为'g'
或'G'
的浮点数值时,则表示小数点前后应该显示多少位数字。对于非数字类型,字段表示最大字段大小——换句话说,就是字段内容中将使用多少个字符。 对于整数值,不允许使用 精度。