3

我正在读取一个文件并在其中寻找一个特定的字符串,如下所示:

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 。

干杯

4

2 回答 2

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()

你还没有说你想如何进行替换——例如,你是否想将它写入一个新文件——但这将适合你使用的任何代码。

于 2012-09-17T01:44:39.307 回答
3

您正在寻找的非常简单:.pop()列表方法。这将获得列表中的下一个条目,并将其删除;您对该函数的下一次调用将返回下一项。根本不需要做任何迭代。

如果没有参数,它将弹出最后一个元素。如果要弹出第一个,可以使用new_elements.pop(0),尽管这会比从末尾弹出要慢。

于 2012-09-17T01:44:26.580 回答