[英]Replace Multiple Lines in a File using 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();
為每次更新調用函數都有效,但我有很多數據,所以我不想這樣做。 有任何想法嗎?
編輯:如果我在dest.txt
有以下dest.txt
:
replace1
replace2
運行后我最終得到:
value1
value1
value1
replace1
replace2
value2
value2
value2
那里應該只有“價值觀”......
看起來您正試圖將同一行寫入文件兩次,這可能會給您帶來問題。 嘗試首先對line
進行所有修改,然后寫入文件:
with open("dest.txt", "w") as template:
for line in lines:
line = re.sub(field_one, one, line) # modify first
line = re.sub(field_two, two, line)
template.write(line) # write once after modifying
經過測試,它似乎可以在我的機器上運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.