我有一个包含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)
答案 0 :(得分:1)
我的猜测是你的'ID'字符串包含除最后一行之外的每一行的换行符。结果是
if ID in line:
失败,因为'line'不包含ID后跟换行符。
有关如何在没有换行符的情况下阅读每一行,请参阅Reading a file without newlines。
ID.strip("\n")
适合我(Python 3.5)。