在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
答
最简单的方法可能是使用正则表达式(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
你尝试过什么吗?出现了什么问题? – 2013-04-18 12:20:22