Python:从File读取行,检查是否在其他文件中,是否是打印行到输出文件

时间:2016-03-22 17:11:31

标签: python

我有一个包含ID列表的文本文件。我想遍历该文件的行,检查ID是否出现在第二个文件的行“extra_lines.txt”中。如果ID存在于第二个文件的一行中,我想将整行打印到output.txt。但是,仅打印包含最终ID的行。我做错了什么?

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 个答案:

答案 0 :(得分:1)

我的猜测是你的'ID'字符串包含除最后一行之外的每一行的换行符。结果是

if ID in line:

失败,因为'line'不包含ID后跟换行符。

有关如何在没有换行符的情况下阅读每一行,请参阅Reading a file without newlines

ID.strip("\n")

适合我(Python 3.5)。