在python中格式化输出文件

时间:2014-02-22 19:20:09

标签: python

我正在尝试将输出文件格式化为与输入文件完全相同。我想知道是否有人能给我一些指示。我的代码是:

input_file=open('measles.txt','r')

f1=input('file name: ')

output_file=open(f1,'w')
for line in input_file:
    newstring=''
    line=line.strip()
    for ch in line:
        newstring+=ch

    print(newstring,file=output_file)

input_file.close()
output_file.close()

输入文件如下所示:

Afghanistan                                        WB_LI   65 Eastern Mediterranean     2011
Afghanistan                                        WB_LI   68 Eastern Mediterranean     2012
Albania                                            WB_LMI  90 Europe                    1980
Albania                                            WB_LMI  90 Europe                    1981

我的输出文件如下所示:

Afghanistan                                        WB_LI   65 Eastern Mediterranean     2011
Afghanistan                                        WB_LI   68 Eastern Mediterranean     2012
Albania                                           WB_LMI   90 Europe                  1980
Albania                                           WB_LMI   90 Europe                  1981

未正确对齐。

3 个答案:

答案 0 :(得分:1)

你可以这样做:

input_file=open('measles.txt','r')

f1 = 'out.txt'
output_file=open(f1,'w')
for line in input_file:
    line=line.rstrip()
    print(line)

input_file.close()
output_file.close()

但是我猜你真的想在打印之前修改一下这行。如果你告诉我什么,我会尽力帮助你。

答案 1 :(得分:0)

看起来字段宽度是个问题。尝试使用填充:http://docs.python.org/release/3.0.1/whatsnew/2.6.html#pep-3101

以下是我输入的示例:

strings = []
fmt = '{0:30} {1:8} {2:4} {3:30} {4:8}'
strings.append(fmt.format("Afghanistan", "WB_LI", 65, "Eastern Mediterranean", 2011))
strings.append(fmt.format("Afghanistan", "WB_LI", 68, "Eastern Mediterranean", 2012))
strings.append(fmt.format("Albania", "WB_LMI", 90, "Europe", 1980))
strings.append(fmt.format("Albania", "WB_LMI", 90, "Europe", 1981))
for str in strings:
    print(str)

输出:

Afghanistan                    WB_LI      65 Eastern Mediterranean              2011
Afghanistan                    WB_LI      68 Eastern Mediterranean              2012
Albania                        WB_LMI     90 Europe                             1980
Albania                        WB_LMI     90 Europe                             1981

答案 2 :(得分:0)