我一直在尝试编写一个脚本来读取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()
答案 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