[英]Python - replace multiline string in a file
我正在編寫一個腳本,在文件中找到幾行文本。 我想知道如何用其他給定的文本替換該文本 (新字符串可能更短或更長)。 我正在使用re.compile()
創建一個多行模式,然后在我喜歡這樣的文件中查找任何匹配:
for match in pattern.finditer(text_in_file)
#if it would be possible I wish to change
#text in a file here by (probably) replacing match.group(0)
是否有可能以這種方式完成 (如果是,那么如何以最簡單的方式做到這一點?)或者我的方法是錯誤的或難以正確地做到(如果是,那么如何做到對了?)
使用pattern.sub('replacement text', text_in_file)
替換匹配。
您可以根據需要在替換模式中使用反向引用。 如果弦更短或更長則無關緊要; 該方法返回一個帶有替換的新字符串值。 如果文本來自文件,則需要將文本寫回該文件以替換內容。
如果需要就地進行替換,可以使用fileinput
模塊 ; 該模塊負責將原始文件移到一邊並在其中寫入一個新文件。
簡單的解決方案:
output = pattern.sub('replacement', fileContent)
復雜的解決方案:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.