2013-08-07 47 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

相关问题