Python在特定列之后写入文本文件

2024-09-27 23:17:56 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下代码:

f.write(str(foo) + '            ' + str(bar) + '\n')

问题是foo中的字母数对于每个值都是不同的,因此我得到以下输出:

^{pr2}$

问题是,因为我对所有值使用相同的空间量(' '),而{}是较长的字符串,所以值0向右移动。我想要的输出是:

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

我的问题是:有没有一种方法可以在一定数量的列之后插入第二个值bar,这样这些值总是对齐的?在

我希望我足够清楚。在


Tags: 字符串代码foo字母bar空间updateaccount
3条回答

最好使用^{}方法的字符串格式,如下所示:

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。在

您可以使用ljust函数,该函数返回左对齐的字符串。在

试试看:

f.write(str(foo).ljust(40) + str(bar) + '\n')

您还可以检查docs中的其他方法

这将为您提供下一个输出:

^{pr2}$

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))

给你:

^{pr2}$

相关问题 更多 >

    热门问题