2016-03-22 68 views
2

我有一個文本文件的ID列表。我想遍歷該文件的行,檢查ID是否出現在第二個文件「extra_lines.txt」的行中。如果ID存在於第二個文件的一行中,我想將整行打印到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'字符串包含除最後一行以外的每行的換行符。結果是

if ID in line: 

失敗,因爲'行'不包含後跟換行符的ID。

請參閱Reading a file without newlines瞭解如何在不帶換行符的情況下讀取每一行。

ID.strip("\n") 

對我的作品(Python的3.5)。

+0

你說得對。除了最後一行外,每行ID都包含換行符。謝謝。 – dizzle

相關問題