如何将字符串格式化为存储在变量中的固定长度?

时间:2013-09-14 02:39:13

标签: python python-3.x string-formatting

我有一个数字,我想格式化为零填充和特定长度的字符串。假设固定长度是22,我知道我可以这样做

 format(variable,"%022d")

但是有没有办法可以做到这一点

length = 22
format(variable,"%0lengthd")

这意味着我需要在% variable d表达式中使用变量

感谢

3 个答案:

答案 0 :(得分:4)

是的,在里面使用字符串格式:

length = 22
format(variable,"%0{}d".format(length))

事实上,你可以通过str.format()的一次调用完成这一切:

length = 22
"{0:{1}}".format(variable, length)

答案 1 :(得分:4)

您应该使用str(variable).zfill(length)

>>> str(12345).zfill(8)
'00012345'
>>> str(12345).zfill(10)
'0000012345'

在填充零之前必须将数字转换为字符串似乎有点不直观,但(至少在我看来)这比使用多种格式要清晰得多。毕竟,为什么在已经内置的情况下将解决方案混合在一起?

答案 2 :(得分:3)

即使是经典的字符串插值也支持:

>>> variable = 100
>>> length = 22
>>> print "%0*d" % (length,variable)
0000000000000000000100

在此答案中查看更多详情:variable length of %s with the % operator in python