所以我有两个文件,一个包含条形码,另一个包含我想要搜索的内容。 文件1的格式为:
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,我不太清楚如何从这里开始。
答案 0 :(得分: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']
}
现在遍历这个字典,使用键的名称创建文件,并用相应的值写出文件的内容。