我試圖通過讀取每一行來替換文本文件中的文本,對其進行測試,然後在需要更新時進行編寫。我不想保存爲新文件,因爲我的腳本已經先備份文件並在備份上運行。如何按行替換(更新)文件中的文本
這裏是我迄今爲止...我從os.walk(獲得fpath),我保證pathmatch VAR正確返回:
fpath = os.path.join(thisdir, filename)
with open(fpath, 'r+') as f:
for line in f.readlines():
if '<a href="' in line:
for test in filelist:
pathmatch = file_match(line, test)
if pathmatch is not None:
repstring = filelist[test] + pathmatch
print 'old line:', line
line = line.replace(test, repstring)
print 'new line:', line
f.write(line)
但是最終情況是,我只得到幾行(正確更新,介意你,但從文件中的前一個重複)更正。我認爲這是一個範圍界定問題,缺點。
*另外:我想知道如何只替換匹配的第一個實例上的文本,例如,我不想匹配顯示文本,只有基礎href。
你有沒有考慮簡單地使用`sed`呢? – Amber 2011-01-24 04:41:24
http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454 – 2011-01-24 04:44:12
@Amber:以某種方式。我真的想完成這個並在稍後學習sed。我幾乎完成了這個... :) – jml 2011-01-24 04:44:17