簡體   English   中英

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

[英]Python write to a text file after certain column

我正在使用以下代碼:

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

我的問題是:是否可以在一定數量的列之后插入第二個值bar ,以便值始終對齊?

我希望我足夠清楚。

最好將字符串格式與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是寬度說明符。 有關更多信息,請參閱格式字符串文檔

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

您可以使用ljust函數,該函數返回左對齊的字符串。

去嘗試一下:

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

您還可以在文檔中檢查其他方法

這將為您提供下一個輸出:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM