Форматирование файлов для записи
Привет, пожалуйста, как я могу перебрать текстовый файл, идентифицировать строки с нулями в последнем индексе такой строки и удалить эти строки, извлекая те, которые не были удалены. Затем также отформатируйте выходные данные, чтобы они были кортежами.
input.txt = 1 2 0
1 3 0
11 4 0.058529
...
...
...
97 7 0.0789
Желаемый результат должен выглядеть следующим образом
[(11,4,{'volume': 0.058529})]
Спасибо
1 ответ
Решение
Проходить 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