2016-03-22 17 views
2

IDのリストを含むテキストファイルがあります。そのファイルの行を繰り返して、IDが2番目のファイル "extra_lines.txt"の行に表示されているかどうかを確認したいと思います。 IDが2番目のファイルの行に存在する場合は、その行全体をoutput.txtに出力します。ただし、最終IDを含む行のみが印刷されます。何が間違っているのですか?Python:ファイルから行を読み込み、出力ファイルを出力ファイルに出力するかどうかを他のファイルにチェックする

outfile = open("output.txt", "a") 

def checkLine(ID):   
    with open("extra_lines.txt") as f: 
     for line in f: 
      if ID in line: 
       outfile.write(line) 

for ID in open("IDs.txt", "r"): 
    checkLine(ID)  

答えて

1

私の推測では、あなたの 'ID'文字列には、最後の行を除く各行の改行文字が含まれていると思います。結果は、 'line'に改行が続くIDが含まれていないため、

は失敗しています。

改行文字なしで各行を読み取る方法については、Reading a file without newlinesを参照してください。

ID.strip("\n") 

私のために働く(Python 3.5)

+0

あなたは正しいです。 IDの各行には、最後の文字を除く改行文字が含まれていました。ありがとう。 – dizzle

関連する問題