[英]search & replace elements of a list into a string iteratively into a new file using python
我一直在尝试编写一个脚本来读取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()
您可以使用str.join
写入列表的内容,replace只会更改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)
由于您的循环顺序,请将其更改为:
for s in new_list:
for line in file1:
try:
line = line.replace('rabbit', s )
file2.write(line)
except:
continue
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.