我正在读取一个文件并在其中查找特定的字符串:
template = open('/temp/template.txt','r')
new_elements = ["movie1","movies2"]
for i in template.readlines():
if "movie" in i:
print "replace me"
这一切都很好,但我想用“new_elements”中的元素替换找到的行。我假设找到的字符串数量总是与“new_elements”列表中的元素数量相匹配。我只是不知道如何迭代new_elements同时寻找要替换的行。
干杯
答案 0 :(得分:7)
一种方法是使new_elements
成为迭代器:
template = open('/temp/template.txt','r')
new_elements = iter(["movie1","movies2"])
for i in template.readlines():
if "movie" in i:
print "replace line with", new_elements.next()
您还没有说过如何进行替换 - 例如,您是否要将其写入新文件 - 但这将适合您使用的任何代码。
答案 1 :(得分:3)
您正在寻找的内容非常简单:.pop()
列表方法。这将获得列表中的下一个条目,并将其删除;您对该函数的下一次调用将返回下一个项目。根本不需要进行任何迭代。
如果没有参数,它将弹出最后一个元素。如果你想弹出第一个,你可以使用new_elements.pop(0)
,虽然这比从最后弹出更慢。