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

1 つの方法は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 に答える