Здравствуйте, у меня возникли проблемы с правильной работой моего Python. У меня есть текстовый файл в следующем формате:Python найти и заменить в текстовом файле
3|1|15382|25364||
3|2|15384|25364||
43|1|27444|27297|4849569|
43|2|27486|27297|4329265|
107|2|24940|684269||
115|1|24869|684269||
Мой текущий код Python:
f1 = open('myFile.txt', 'r')
f2 = open('myFileOutput.txt', 'w')
for line in f1:
f2.write(line.replace('|\n', ','))
f1.close()
f2.close()
Мой текущий код будет создать myFileOutput.txt, который выглядит следующим образом:
3 | 1 | 15382 | 25364 | 3 | 2 | 15384 | 25364 | 43 | 1 | 27444 | 27297 | 4849569,43 | 2 | 27486 | 27297 | 4329265.107 | 2 | 24940 | 684269 | 115 | 1 | 24869 | 684269 ||
Что я хочу, когда нет данных между двумя знаками || он должен сохранить второй |. Мой текущий код этого не делает. Вот пример того, что я хочу, чтобы это выглядело как:
3 | 1 | 15382 | 25364 ||, 3 | 2 | 15384 | 25364 ||, 43 | 1 | 27444 | 27297 | 4849569,43 | 2 | 27486 | 27297 | 4329265.107 | 2 | 24940 | 684269 ||, 115 | 1 | 24869 | 684269 ||
Я использую Python 2.7.3, а также эти файлы могут иметь размер до 500 МБ.
'f2 .write (line.replace ('| \ n', ','). replace ('|,', '||,')) ' –
@ Оммега, которая, похоже, работает. можете ли вы объяснить, как работает эта вторая .replace? если не все в порядке, спасибо! – michael
@michael Вторая часть решения Ωmega предполагает, что единственными запятыми в файле являются те, которые вы только что добавили. Поэтому, если у вас есть «|», это должно означать, что вы использовали «||». Чтобы получить то, что вы хотели, оно превращает его в «||». – David