73

我想创建一个固定大小的格式化字符串,字段之间的位置固定。一个例子解释得更好,这里显然有 3 个不同的字段,并且字符串是固定大小的:

XXX        123   98.00
YYYYY        3    1.00
ZZ          42  123.34

如何将这种格式应用于python(2.7)中的字符串?

4

1 回答 1

161

当然,使用.format方法。例如,

print('{:10s} {:3d}  {:7.2f}'.format('xxx', 123, 98))
print('{:10s} {:3d}  {:7.2f}'.format('yyyy', 3, 1.0))
print('{:10s} {:3d}  {:7.2f}'.format('zz', 42, 123.34))

将打印

xxx        123    98.00
yyyy         3     1.00
zz          42   123.34

您可以根据需要调整字段大小。请注意,它.format独立print于格式化字符串。我只是使用 print 来显示字符串。简要说明:

10s格式化一个有 10 个空格的字符串,默认左对齐

3d格式化一个保留 3 个空格的整数,默认右对齐

7.2f格式化浮点数,保留7个空格,小数点后2个,默认右对齐。

定位/格式化字符串有许多附加选项(填充、左/右对齐等),字符串格式化操作将提供更多信息。

f 字符串模式的更新。例如,

text, number, other_number = 'xxx', 123, 98
print(f'{text:10} {number:3d}  {other_number:7.2f}')

对于右对齐

print(f'{text:>10} {number:3d}  {other_number:7.2f}')
于 2012-05-31T15:53:28.807 回答