在Python中处理多个文件,并在字段上匹配

问题描述:

我有一些CSV文件需要与一个“主列表”进行比较,并根据唯一标识确定这些其他文件是否包含该键的条目。在Python中处理多个文件,并在字段上匹配

在Python中最简单的方法是什么? I.e你建议我将数据读入哪种结构,并且你会如何建议我重复它?

这里是我正在寻找的数据和输出的一个例子。

**Master List** 

Unique ID : File Name : File Version : Responsible Party 

J578221 : Expander : 1.23 : Joe Bloggs 

KK89821 : Top : 0.9 : Mike Smith 


**Location X** 

Region : File Name : Unique ID 

USA : Acme Expander : J578221 

USA : Acme Tail : MK33431 

**Location Z** 

Reqion : File Name : Unique ID : Date Added 

China : Expander : J578221 : 03-04-2012 

HK : Acme Top : KK89821 : 06-07-2012 

**Output:** 

Unique ID : File Name : File Version : Responsible Party : In Location X : In Location Z 

J578221 : Expander : 1.23 : Joe Bloggs : YES : YES 

KK89821 : Top : 0.9 : Mike Smith : NO : YES 
+0

你尝试过什么吗?出现了什么问题? – 2013-04-18 12:20:22

最简单的方法可能是使用正则表达式(see documentation here)来检索主文件中的每一行的关键。 (您可能需要首先评估文件的结构,如果Unique-ID的位置发生更改,则需要修改表达式。)

将此ID列表存储在字典中作为键,并使用列表作为值,指示包含每个主密钥的文件。

之后您可以过滤字典中的一个或多个文件的ID(Keys)或查找包含一个特定ID的文件。

+0

我最终将主列表的键读入字典中,ID为键,列表为值(如我的迈克尔所示),并以相同的方式将其他两个文件读入字典。然后遍历主列表字典,执行如下操作: if id in sort(masterdict): 如果id在locationxdict和id在locationzdict中: ... process ... – user2293577 2013-04-24 10:45:39