搜索&使用python将列表的元素迭代地替换为新文件

时间:2014-10-11 07:54:48

标签: python list scripting

我一直在尝试编写一个脚本来读取file1&的内容。替换"特定字符串" (兔子)包含我在程序前面部分创建的列表元素(迭代使用for循环),并将内容写入新文件(file2)。

在下面的代码" new_list"是从file1的内容创建的列表。所以我在这里面临的问题是因为我正在使用for循环,所以file1的所有内容都被多次写入file2(列表中的元素数)。但我感兴趣的是只更换兔子"带有列表元素的字符串/行(迭代地触摸其他行/字符串)&将它写入newfile / file2。有谁可以帮我在这里找到正确的解决方案?

file1  = open(filename, 'r')
file2 = open('newfile', 'r+')
for line in file1:
 for s in new_list:
       animal = line.replace('rabbit', s )
       file2.write(animal)
file1.close()
file2.close()

2 个答案:

答案 0 :(得分:0)

您可以使用str.join来编写列表内容,替换只会更改rabbit出现的那一行,因此绝对不需要try/except

 with open(filename, 'r') as file1,open('newfile', 'w') as file2:
    for line in file1:
       line = line.replace('rabbit', " ".join(new_list) )
       file2.write(line)

答案 1 :(得分:-1)

由于您的循环顺序,将其更改为:

for s in new_list:
   for line in file1:
     try:  
       line = line.replace('rabbit', s )
       file2.write(line)
     except:
       continue