Python在某些列之后写入文本文件

时间:2016-12-05 14:21:26

标签: python string formatting

我使用以下代码:

conan install --build

问题是f.write(str(foo) + ' ' + str(bar) + '\n') 中的字母数对于每个值都不同,我得到以下输出:

foo

问题是,因为我对所有值使用相同的空间量(Account Category DORMANT Last Made Update 21/12/2013 Mortgages Partly Satisfied 0 )而' '的字符串较长,所以值Mortgages Partly Satisfied会向右移动。我想要的输出是:

0

我的问题是:有没有办法在一定数量的列之后插入第二个值Account Category DORMANT Last Made Update 21/12/2013 Mortgages Partly Satisfied 0 ,以便值始终对齐?

我希望我足够清楚。

2 个答案:

答案 0 :(得分:1)

最好使用str.format方法使用字符串格式,如下所示:

items = [
    ('Account Category', 'DORMANT'),
    ('Last Made Update', '21/12/2013'),
    ('Mortgages Partly Satisfied', '0'),
]
for label, value in items:
    f.write('{:28} {}\n'.format(label, value))

:28是宽度说明符。有关详细信息,请参阅format string docs

答案 1 :(得分:0)

Python允许您通过指定给定字段应使用的字符数来为字符串添加填充。这可以在写入文件时使用,如下所示:

data = [["Account Category", "DORMANT"], ["Last Made Update", "21/12/2013"], ["Mortgages Partly Satisfied", "0"]]

with open('output.txt', 'w') as f:
    for v1, v2 in data:
        f.write("{:28} {}\n".format(v1, v2))

给你:

Account Category             DORMANT
Last Made Update             21/12/2013
Mortgages Partly Satisfied   0