如何在Python中使用str.format
截取字符串?这是否可能?
格式规范迷你语言中提到了一个width
参数:
format_spec ::= [[fill]align][sign][#][0][width][,][.precision][type]
...
width ::= integer
...
但是显然只有对填充进行指定才有效,而不是截断:
>>> '{:5}'.format('aaa')
'aaa '
>>> '{:5}'.format('aaabbbccc')
'aaabbbccc'
所以它更像是最小宽度而不是实际宽度。
我知道我可以切割字符串,但我在这里处理的数据完全是动态的,包括格式字符串和传入的参数。我不能只去明确地切割一个。
{:5.5}
。这将确保输出始终为5个字符,这很可能是 OP 想要的。 - Harvey!s
强制将非字符串对象转换为字符串来使其适用于非字符串,例如f'{123456789!s:5.5s}'
=>'12345'
。请注意,此操作并不会改变原始对象的类型,只是在格式化字符串时将其转换为字符串。 - Shabble