如何在Python中更新現有的文件行?如何更新python中的文件行
例如:我想更新session.xml
爲sesion-config.xml
而不寫新行。
輸入A.txt
:
fix-config = session.xml
預計輸出A.txt
:
fix-config = session-config.xml
如何在Python中更新現有的文件行?如何更新python中的文件行
例如:我想更新session.xml
爲sesion-config.xml
而不寫新行。
輸入A.txt
:
fix-config = session.xml
預計輸出A.txt
:
fix-config = session-config.xml
該解決方案@ TigerhawkT3建議將針對小型/中型文件工作的偉大。 對於非常大的文件,可能無法將整個文件加載到內存中,然後您想分別處理每一行。 沿着這些線應該工作:
import shutil
with open('A.txt') as input_file:
with open('temp.txt', 'w') as temp_file:
for l in input_file:
if l.startswith('fix-config'):
temp_file.write('fix-config = session-config.xml\n')
else:
temp_file.write(l)
shutil.move('temp.txt', 'A.txt')
不能突變在一個文本文件行 - 你必須寫一個全新的線路,其中,如果不是一個文件的結尾,需要重寫其餘的部分。
要做到這一點,最簡單的方法是將文件存儲在一個列表中,對它進行處理,並創建一個新的文件:
with open('A.txt') as f:
l = list(f)
with open('A.txt', 'w') as output:
for line in l:
if line.startswith('fix-config'):
output.write('fix-config = session-config.xml\n')
else:
output.write(line)
有這個問題的確切副本[這裏](http://stackoverflow.com/questions/39086/search-and-replace-a-line-in-a-file-in-python)。你怎麼看? –
如果您看到流行的規範副本的常見問題,您可以對該問題進行投票或將問題標記爲關閉。 – Jarvis
@賈維斯 - 這些都是真正熟悉的單詞。 :P – TigerhawkT3
你想重寫一行或重寫整個文件? –
[在Python中搜索並替換文件中的一行]的可能重複(http://stackoverflow.com/questions/39086/search-and-re-place-a-line-in-a-file-in-python) –