我想将字符串格式化为固定宽度
如果我使用以下声明:
"{0:<8}".format(str(size)) #This one works
然而,
# This one gives Invalid conversion specification
"{0:<width}".format(str(size))
无论如何使用变量来格式化字符串?
答案 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))