Форматирование файлов для записи

Привет, пожалуйста, как я могу перебрать текстовый файл, идентифицировать строки с нулями в последнем индексе такой строки и удалить эти строки, извлекая те, которые не были удалены. Затем также отформатируйте выходные данные, чтобы они были кортежами.

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
Другие вопросы по тегам