格式化要写入的文件

时间:2014-04-02 16:08:28

标签: python file python-2.7 file-io inplace-editing

嗨,请问我如何循环文本文件,在这样一行的最后一个索引处标识0,并在检索未删除的行时删除这些行。然后还将输出格式化为元组。

input.txt = 1 2 0 
            1 3 0 
            11 4 0.058529
            ...
            ...
            ...
            97 7 0.0789

所需的输出应该如下所示

[(11,4,{'volume': 0.058529})]

谢谢

1 个答案:

答案 0 :(得分:2)

inplace=1传递给fileinput.input()以修改文件。循环中打印的所有内容都将写入文件:

import fileinput

results = []
for line in fileinput.input('input.txt', inplace=1):
    data = line.split()
    if data[-1].strip() == '0':
        print line.strip()
    else:
        results.append(tuple(map(int, data[:-1])) + ({'volume': float(data[-1])}, ))

print results

如果input.txt包含:

1 2 0
1 3 0
11 4 0.058529
97 7 0.0789

代码将打印:

[(11, 4, {'volume': 0.058529}), 
 (97, 7, {'volume': 0.0789})]

input.txt的内容变为:

1 2 0
1 3 0