У меня есть скрипт, который читает значения из одного файла и использует их для обновления полей в другом файле. Он отлично работает, если я делаю только одно обновление, но если я добавлю больше (прокомментированная строка), он сломается.Python Замените несколько строк в файле
import re
def update_template():
with open("dest.txt", "r") as template:
lines = template.readlines()
with open("dest.txt", "w") as template:
for line in lines:
template.write(re.sub(field_one, one, line))
template.write(re.sub(field_two, two, line)) # <-- breaks here
with open('source.txt') as source:
for line in source:
one = "value1"
two = "value2"
field_one = "replace1"
field_two = "replace2"
update_template();
Вызов функции для каждого обновления работает, но у меня много данных, поэтому я предпочел бы этого не делать. Есть идеи? Благодаря!
Edit: если у меня есть следующие в dest.txt:
replace1
replace2
после запуска я в конечном итоге с:
value1
value1
value1
replace1
replace2
value2
value2
value2
Там должны быть только 'ценности' в там ...
Неужели вы не открываете тот же файл дважды? Вы сказали, что обновляете поля в * другом * файле, не так ли? –
Что вы подразумеваете под словом "it breaks"? Сбой программы? Это просто не работает? – TWhite
Предоставьте MCVE (http://stackoverflow.com/help/mcve). В противном случае мы не сможем вам помочь. – CrazyCasta