使用另一个列表的元素筛选列表

2024-06-03 04:26:17 发布

您现在位置:Python中文网/ 问答频道 /正文

所以我有两个文件,一个包含条形码,另一个包含我要搜索的内容。 文件1的格式为:

BC01 123号

密件02 124

密件03 125

我的第二个文件的格式为:

INV01 123axxxx

INV02 123bxxxx号

INV03 124cxxxx型

INV04 125dxxxx型

两个文件都用制表符分隔在“tag”和行的其余部分之间

所以我现在要做的是用在第一个文件中找到的条形码搜索第二个文件,并将它们输出到不同的文件中

因此,我想要的最终结果是3个单独的文件BC01、BC02、BC03,以及相应的库存编号,条形码被切断,例如:

文件BC01将读取:

INV01公司

axxxx公司

发票02

bxxxx型

我现在看到的是两个文件中单独的制表符分隔部分的列表:BCID、BCnumber、INVID和INVnumber,我不太确定如何从这里开始


Tags: 文件内容tag格式公司制表符条形码密件
1条回答
网友
1楼 · 发布于 2024-06-03 04:26:17

从文件\u 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']
}

现在遍历这个字典,用键的名称创建文件,并用相应的值写出文件的内容

相关问题 更多 >