Python fileinput удалить строки
У меня есть csv-файл, который выглядит следующим образом:
CCC, rev, pIndex, no. 23, 2.5, 0, 4 34, 4.3, 1, 3 27, 7.9, 2, 5 12, 5.7, 3, 7
где третий элемент в каждой строке называется pIndex. У меня есть код, который повторяет каждую строку один раз, обновляя соответственно pIndex. Таким образом, результат выглядит следующим образом:
CCC, rev, pIndex, no. 23, 2.5, 0, 4 23, 2.5, 1, 4 34, 4.3, 2, 3 34, 4.3, 3, 3 27, 7.9, 4, 5 27, 7.9, 5, 5 12, 5.7, 6, 7 12, 5.7, 7, 7
Теперь я хочу сохранить все строки, но удалить одно дублирование первой и последней строки. Поэтому в основном я просто хочу удалить первую строку (сразу после строки заголовка, с pIndex 0) и последнюю строку файла(с pIndex 7).
Что я уже пробовал:
with fileinput.input(inplace=True) as f: n = 0 for line in f: line = line.rstrip('\n') numbers = line.split(sep = ',') for i in range(2): numbers[3] = n n += 1 s = '' for j in numbers: s += str(j) + ',' s = s.rstrip(',') print(s)
Я использую fileinput и печатаю результаты в исходном файле. Я пробовал использовать
for linenum in enumerate(f)и [1:-1], но не с каким-либо успехом.
Любая помощь очень ценится!
Richard MacCutchan
Какие результаты вы получаете?
Member 11415659
Я получил то, что искал, но мне пришлось использовать open('file', 'r') и write('newfile', 'w'). Теперь моя проблема заключается в том, как сделать сценарий общим, чтобы я мог запускать его на нескольких файлах одновременно и, возможно, записывать выходные данные обратно в один и тот же файл.