2016-11-14 39 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线第一线。你知道为什么会发生吗? –