2013-04-18 4 views
0

У меня есть несколько файлов CSV, которые мне нужно сравнить с одним «Главным списком», и определить на основе уникального идентификатора, если эти другие файлы содержат записи для этого ключа ,Обработка нескольких файлов в Python и сопоставление по полям

Что было бы самым простым способом сделать это в Python? I. Какие структуры вы бы предложили, я прочитал данные, и как бы вы предложили мне перебирать их?

Ниже приведен пример данных и результатов, которые я ищу.

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

Вы пробовали что-нибудь? Какая проблема возникла? –

ответ

0

Самый простой способ может быть с помощью регулярных выражений (see documentation here), чтобы получить ключ от каждой строки в мастер-файле. (Возможно, вам нужно будет сначала оценить структуру файлов и изменить ваше выражение, если изменится позиция уникального идентификатора.)

Сохраните этот идентификационный список в словаре как ключ и используйте список в качестве значения, указав файлы, в которые включен каждый из основных ключей.

После этого вы можете фильтровать словарь для идентификаторов (Ключей) для одного или нескольких файлов или искать файлы, содержащие один конкретный идентификатор.

+0

Я закончил читать ключи основного списка в словаре, с идентификатором в качестве ключа и списка в качестве его значения (как предложил мой майкл), и прочитал два других файла в словарях таким же образом. Затем повторяется через словарь главного списка, делая что-то вроде: if id в отсортированном (masterdict): , если id в locationxdict и id в locationzdict: ... process ... – user2293577

Смежные вопросы