2016-03-22 38 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

相关问题