與發佈類似:Replace string in a specific line using python,但是結果並不是在我略有不同的實例中預先設定的。替換非標準文本文件的特定行中的字符串
我在Windows 7上使用python 3.我試圖批量編輯目錄中的某些文件。它們基本上是帶有.LIC標籤的文本文件。我不確定這是否與我的問題有關。我能夠將文件讀入python而沒有問題。 我的目標是替換此文件中特定行上的特定字符串。
import os
import re
groupname = 'Oldtext'
aliasname = 'Newtext'
with open('filename') as f:
data = f.readlines()
data[1] = re.sub(groupname,aliasname, data[1])
f.writelines(data[1])
print(data[1])
print('done')
當運行上面的代碼時,我得到一個UnsupportedOperation: not writable
。我有一些問題將更改寫回文件。根據其他職位的建議,我編輯添加w
選項open('filename', "w")
函數。這會導致文件中的所有文本被刪除。
根據建議,嘗試了r+
選項。這導致文件的成功編輯,但是,不是編輯正確的行,而是將編輯過的行附加到文件的末尾,使原始文件保持不變。
嘗試使用'r +'模式,該模式打開文件以讀取和寫入 – Wondercricket
我試過了您的建議。這使我可以編輯文件,但修改後的行只是附加到文件而不是編輯所需的行。 – DavidU