簡體   English   中英

使用 Python 替換文件中的多行

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM