2013-08-07 44 views
0

希望有解決的建議此的Python:在兩個文本文件進行比較的信息並寫入匹配信息,以新的文件

我有兩個文本文件A和B
A =

23,34,67,56 
45,66,86,98 
65,113,77,99 

B =

11,34,58,99,109,24 
23,34,67,56,99,98 
55,100,75,45,44,90 
65,113,77,99,114,45 

我想要的是在選擇B中所有行元素,其中有來自串聯的前兩個元素作出了獨特的鍵值之間的匹配,並將這些行寫入新文件C.

基於示例文件A和B;
C =

23,34,67,56,99,98 
65,113,77,99,114,45 

輸入文件都具有典型的100個000行 感謝您的幫助

+0

作業?顯示連接的例子。 – specialscope

+1

@ user2659801你有什麼嘗試? –

回答

1

在這裏你有CSV文件,所以使用csv module讀寫這些文件。使用一組存儲從一個獨特的密鑰,然後使用該組從B濾鏡行:

import csv 

with open(A, 'rb') as file_a: 
    selected = {tuple(row[:2]) for row in csv.reader(file_a)} 

with open(B, 'rb') as file_b, open(C, 'wb') as file_c: 
    reader = csv.reader(file_b) 
    writer = csv.writer(file_c) 
    writer.writerows(row for row in reader if tuple(row[:2]) in selected) 

注意設置,像字典,只能存儲可哈希值,所以我們把每個前兩列CSV排成一個元組以符合這個要求。

+0

工作的很好,非常感謝 – user2659801

+0

只需要修改如下:writer = csv.writer(file_c) – user2659801

+0

:-)保存了我半天的工作。再次感謝。 – user2659801

相關問題