使用变量在python中指定格式

时间:2015-07-01 17:49:44

标签: python

我想将字符串格式化为固定宽度

如果我使用以下声明:

"{0:<8}".format(str(size)) #This one works

然而,

# This one gives Invalid conversion specification
"{0:<width}".format(str(size)) 

无论如何使用变量来格式化字符串?

2 个答案:

答案 0 :(得分:6)

解决方案1:
使用width首先生成字符串{0:<8}

width = 8
("{0:<%d}"%width).format(s)

解决方案2:
嵌套format

"{0:<{1}}".format(s, width)

命名格式可能更具可读性:

"{string:<{width}}".format(string=s, width=width)

解决方案3:
翻译{0:<8}的另一种方式:.ljust(8)

"{0}".format(s.ljust(width))

我选择3.时 1)处理i18n中的其他编码
2)打印漂亮

print 'a'.rjust(10, '-')
---------a

答案 1 :(得分:2)

它需要实际值,而不是字符串'width'

str(width).join(("{0:<", "}")).format(str(size))