使用另一个列表的元素筛选列表-Python
所以我有两个文件,一个包含条形码,另一个包含我要搜索的内容。 文件1的格式为: BC01 123 BC02 124 BC03 125 我的第二个文件的格式为: INV01 123axxxx INV02 123bxxxx INV03 124cxxxx INV04 125dxxxx 这两个文件都在“标记”和行的其余部分之间用制表符分隔 所以我现在要做的是用第一个文件中找到的条形码搜索第二个文件,并将它们输出到不同的文件中 因此,我想要的最终结果是3个单独的文件BC01、BC02、BC03,带有相应的库存编号,条形码被切断,例如: 文件BC01将读取: INV01 axxxx INV02 bxxxx使用另一个列表的元素筛选列表-Python,python,Python,所以我有两个文件,一个包含条形码,另一个包含我要搜索的内容。 文件1的格式为: BC01 123 BC02 124 BC03 125 我的第二个文件的格式为: INV01 123axxxx INV02 123bxxxx INV03 124cxxxx INV04 125dxxxx 这两个文件都在“标记”和行的其余部分之间用制表符分隔 所以我现在要做的是用第一个文件中找到的条形码搜索第二个文件,并将它们输出到不同的文件中 因此,我想要的最终结果是3个单独的文件BC01、BC02、BC03,带有相应的
我现在拥有的是两个文件的单独制表符分隔部分的列表:BCID、BCnumber、INVID和INVnumber,我不太确定如何从这里开始。用文件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()
然后,输出
字典将是:
{
'BC01':['INV01', 'axxxx', 'INV02', 'bxxxx']
'BC02':['INV03', 'cxxxx']
'BC03':['INV04', 'dxxxx']
}
现在遍历这个字典,用键的名称创建文件,并用相应的值写出文件的内容