0
我有两个txt文件,用50000和25000数据来比较哪些数据在两个文件中,但只有第一行进行比较并添加到列表res1中(打印只是为了了解它是如何工作的)当我运行代码打印元组(如预期的那样),但只打印lineCue中的值并避免第二个循环,列表结果只是lineCue提取的第一个值,而不是两个文件中重复的所有值。当 我试图通过另一种方式列表内容有24808个重复... :(为什么这个doble循环无法正常工作?
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
如果您确定没有任何重复,我会推荐创建一个集合。您可以将每个文件存储在一个列表中,然后将这个列表与'in'进行比较。为了避免出现'\ r \ n \'的问题,我建议您在比较这些行时使用'.rstrip()',以防两个文件都不一样 – Llopis