2014-04-02 173 views
2

所以我有兩個文件,一個包含條形碼,另一個包含我想要搜索的內容。 文件1的格式爲:用另一個列表的元素過濾列表 - Python

BC01 123

BC02 124

BC03 125

我的第二文件的格式爲:

INV01 123axxxx

INV02 123bxxxx

INV03 124cxxxx

INV04 125dxxxx

兩個文件選項卡中的「標籤」和該行的其餘部分之間的分隔。

因此,我目前正試圖做的是用第一個條形碼搜索第二個文件,並將它們輸出到單獨的文件。

所以,我想最終的結果是3個獨立的文件BC01,BC02,BC03與相應的庫存數據與條形碼切斷,例如:

文件BC01將改爲:

INV01

AXXXX

INV02

bxxxx

我現在所擁有的是兩個文件的單獨製表符分隔部分的列表:BCID,BCnumber,INVID和INVnumber,我不太確定如何從這裏開始。

回答

2

創建字典出file_1的:

barcodes = {} 
with open(file_1) as file_one: 
    csv_reader = csv.reader(file_one, delimiter='\t') 
    for row in csv_reader: 
     barcodes[row[1]] = row[0] 
file_one.close() 

使用這第二個文件進行搜索,並建立一個輸出圖:

output = defaultdict(list) 
with open(file_2) as file_two: 
    csv_reader = csv.reader(file_two, delimiter='\t') 
    for row in csv_reader: 
     key = row[1][:2] 
     output[barcodes[key]].append(row[0]) 
     output[barcodes[key]].append(row[1][2:]) 
file_two.close() 

output字典然後將:

{ 
'BC01':['INV01', 'axxxx', 'INV02', 'bxxxx'] 
'BC02':['INV03', 'cxxxx'] 
'BC03':['INV04', 'dxxxx'] 
} 

現在遍歷這個字典,使用鍵和w的名字創建文件用相應的值來表示文件的內容。

相關問題