2016-05-24 13 views
4

私はtextfile1.txtから単語のリストを取り、textfile2.txtの単語 "example"を1行目、2行目などに置き換えたい私はこれをします?Python検索テキストファイルと置換する

url/user1 
url/user2 
url/user3 
:私はこれまで

#!/usr/bin/env python3 
import fileinput 

with fileinput.FileInput("textfile2.txt", inplace=True) as file: 
    for line in file: 
     print(line.replace("example", "user1"), end='') 

私の目標は持って何

テキストファイルtextfile1.txt

user1 
user2 
user3 
user4 
user5 

テキストファイルtextfile2.txt

url/example 
url/example 
url/example 
url/example 
url/example 

答えて

4

これはそれを行う必要があります。一般的に、2つ以上のiterable(リスト、ファイルなど)を並行してトラバースする場合は、zipを使用できます。

with open('textfile1.txt') as f1, open('textfile2.txt') as f2: 
    for l, r in zip(f1, f2): 
     print(r[:r.find('/')+1] + l) 
+3

良い。しかし、おそらく 'izip'(またはPython 3)を使って、2つのファイルの内容全体を読む必要はありません。 – dawg

+1

あなたは' print(r [:r.find( '/')+ 1] + l) ' –

+0

Hehはい私は、@モーゼスKoledoyeでした。 dawg、OPはPython 3を使っていますが、ポイントがあります。 –

0

私は、最初のファイルを開き、配列に各行を読んでいました:['user1', 'user2', ...]

次に、あなたが2番目のファイルを読んで、あなたの行番号を追跡します。行番号に基づいて配列にインデックスを付け、その文字列を置換文字列として使用します。

またはzip()の回答を使用してください。これも問題ありません。