我正在尝试比较Python中的多个列表。这个想法是,我们有多个列表,并且正在将每个列表中的每个项目与汇总的唯一值列表进行比较。然后,我们创建一个excel工作表,在该工作表中我们将并排显示每个列表,并且特定列表中缺少的任何值都将在该单元格中显示为PLACEHOLDER。
(我很难解释,但如果您在阅读后仍不明白,请提出问题,我会相应地调整解释)
filecount = 0
for file in files:
filecount += 1
with open(file) as file_object:
row = 0
for line in agg_Names:
#if line match, output to row
print (file_object)
if line in file_object.readlines():
worksheet.write(row, filecount, line)
row += 1
print ("found match")
最后一个if语句不正确。应该将agg_Names中的每个项目与当前列表进行比较并输出值。目前,我只在第一行找到比赛。
答案 0 :(得分:0)
之所以只得到一行,是因为readlines()
将文件的所有行作为列表返回,并且您的比较仅发生一次。
因此,在第一次迭代之后,file_object.readlines()
将为空,因为缓冲区(file_object
)为空。
您可以对此进行修改,
filecount = 0
for file in files:
filecount += 1
with open(file) as file_object:
file_lines = file_object.readlines()
row = 0
for line in agg_Names:
#if line match, output to row
if line in file_lines:
worksheet.write(row, filecount, line)
row += 1
print ("found match")
希望这会有所帮助。