我有两个txt文件,有50000和25000个数据来比较两个文件中的数据,但只比较第一行并将其添加到列表res1中(打印只是为了了解它是如何工作的)当我运行代码时,它打印元组(如预期的那样),但是只打印lineCue中的值并避免第二个循环,列表结果只是lineCue取的第一个值,而不是两个文件中重复的所有值。什么时候 我尝试了另一种方式,列表内容有24808次重复...... :(
contratos = 'C:\\CONTRATOS.txt'
cuentas = 'C:\\CUENTAS0.txt'
res1 = [[], []] # res1[0] -> ID, res1[1] -> NO ID
res2 = [] # res2 -> REPE
with open(cuentas, 'rb') as cue:
with open(contratos, 'rb') as con:
for lineCue in cue.xreadlines():
print(lineCue)
for lineCon in con.xreadlines():
print(lineCue, lineCon)
if lineCue == lineCon:
res1[0].append(lineCon)
print(res1[0])
输出:
['O199924\r\n']
文件: https://dl.dropboxusercontent.com/u/33113171/CONTRATOS.txt https://dl.dropboxusercontent.com/u/33113171/CUENTAS0.txt
答案 0 :(得分:1)
在外循环的第一次迭代中,您读取整个文件con
。你需要每次从头开始阅读它。为此,请在进入内循环之前使用con.seek(0)
转到此文件的开头。