嗨,请问我如何循环文本文件,在这样一行的最后一个索引处标识0,并在检索未删除的行时删除这些行。然后还将输出格式化为元组。
input.txt = 1 2 0
1 3 0
11 4 0.058529
...
...
...
97 7 0.0789
所需的输出应该如下所示
[(11,4,{'volume': 0.058529})]
谢谢
答案 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