2016-11-14 62 views
0

我試圖打開一個文本文件,並寫入該文件,但它這樣做是不工作的時候都寫。如何在Python從文本文件

這是我有:

changeaddress = [changeaddr1, changeaddr2] 
address = [address_1, address_2] 
new_var = [] 
cur_addr = 0 
with open('address.txt','r+') as file: 
    for line in file: 
     if address[cur_addr] in line: 
      line.replace(address[cur_addr], changeaddress[cur_addr]) 
      cur_addr += 1 
     new_var.append(line) 

with open('address.txt','w') as file: 
    file.writelines(new_var) 

什麼,我做錯了什麼?它不工作。 謝謝!

+5

定義*它不工作*。 *如何*它不起作用?爲什麼它不起作用 - 什麼不按預期工作?你是否收到任何錯誤? – Li357

+1

你是什麼意思,它不工作?你面臨的實際問題是什麼? –

+0

您是否確定您的腳本是可執行的,並且您的文件具有可訪問的權限。 –

回答

1

字符串是不可改變的。 line.replace返回一個新的字符串,而不是逐字地替換它。

new_line = line.replace 
... 
new_var.append(new_line) 

注:在內存中存儲整個列表會壞大文件。您可以在一個with命令打開兩個文件從一個文件中讀取和寫入到另一個

+0

我試過,但這個不工作,當我運行我的腳本,它只是不更換 –

+0

可能是因爲你它不返回任何錯誤仍然在寫行,而不是新行......如果您只是打印這些值,那麼這是一個簡單的調試過程。搞不定你改變你的輸出源之前 –

+0

謝謝你,當這樣做會刪除,只留下被更換件我.TXT線第一線。你知道爲什麼會發生嗎? –