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