繁体   English   中英

用列表中的元素替换行

[英]replacing lines with elements from a list

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

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进行迭代。

干杯

一种方法是使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()

您没有说过要如何执行替换操作-例如是否要将其写入新文件-但这将适合您使用的任何代码。

您要查找的内容非常简单:列表的.pop()方法。 这将获得列表中的下一个条目,并将其删除; 您对该函数的下一次调用将返回下一项。 完全不需要进行任何迭代。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM