Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/338.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Python中处理多个文件,并在字段上进行匹配_Python_File_Pattern Matching - Fatal编程技术网

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

在Python中处理多个文件,并在字段上进行匹配,python,file,pattern-matching,Python,File,Pattern Matching,我有许多CSV文件需要与一个“主列表”进行比较,并根据唯一ID确定这些其他文件是否包含该密钥的条目 在Python中,最简单的方法是什么?也就是说,您建议我将数据读入什么样的结构,以及您建议我如何迭代它 下面是我正在寻找的数据和输出的示例 **Master List** Unique ID : File Name : File Version : Responsible Party J578221 : Expander : 1.23 : Joe Bloggs KK89821 : Top :

我有许多CSV文件需要与一个“主列表”进行比较,并根据唯一ID确定这些其他文件是否包含该密钥的条目

在Python中,最简单的方法是什么?也就是说,您建议我将数据读入什么样的结构,以及您建议我如何迭代它

下面是我正在寻找的数据和输出的示例

**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

最简单的方法可能是使用正则表达式()检索主文件中每一行的键。(如果唯一ID的位置发生更改,可能需要首先计算文件的结构并修改表达式。)

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


之后,您可以在字典中筛选一个或多个文件的ID(键),或查找包含一个特定ID的文件。

您尝试过什么吗?出现了什么问题?我最终将主列表的键读入字典,ID作为键,列表作为其值(正如我的michael建议的那样),并以相同的方式将其他两个文件读入字典。然后遍历主列表字典,执行如下操作:if id in sorted(masterdict):if id in locationxdict和id in locationzdict:…进程。。。