比较两个csv文件,一行代码失败

2024-09-29 19:19:37 发布

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

我有下面的代码(完整的代码也包括在内)它负责比较2个csv文件

(如果可能,我坚持保持一行格式):

master_indices = dict(((r[0]), i) for i, r in enumerate(csv.reader(master)))

我需要添加一个语句,如果行包含“/”,则枚举并生成dic

我试过:

master_indices = dict(((r[0]), i) for i, r in enumerate(csv.reader(master)) if r.startswith('/') )

master_indices = dict(((r[0]), i) for i, r in enumerate(csv.reader(master)) if re.search(r'/', str(r)))

my lines looks like

1/2/3 12:02:03, aaa, 4bb5b, dddd, eeee
2 ----------> dont want this
3/4/8 1:01:54, aaa, rrrr, dddddd, fdghd
3/4/8 1:01:54  aah, 12rr, ddghddd, fdghd
3/4/8 1:01:54  agy, rr34r, ddhgdd, fdghd
47,    23,    54 ---> dont want this

完整代码: 导入csv

with open('C:\\Users\\Fradad\\Desktop\\work\\New folder (2)\\NPPD-conversion\\HIS_exp_20140101\\LTA\\LTA37\\Analog_per_5_min_20140101.csv', 'r') as master:
    master_indices = dict(((r[0]), i) for i, r in enumerate(csv.reader(master)) if re.search(r'/', str(r)))


with open('C:\\Users\\Fradad\\Desktop\\work\\New folder (2)\\NPPD-conversion\\HIS_exp_20140101\\LTA\\LTA37\\Analog_exp_2014010100.csv', 'r') as hosts:
    with open('results1.csv', 'w') as results:
        reader = csv.reader(hosts)
        writer = csv.writer(results)

        writer.writerow(next(reader, []) + ['RESULTS'])

        for row in reader:
            index = master_indices.get(row[0])
            if index is not None:
                message = 'FOUND in master list (row {})'.format(index)
            else:
                message = 'NOT FOUND in master list'
            writer.writerow(row + [message])

Tags: csv代码inmasterforifwithopen
1条回答
网友
1楼 · 发布于 2024-09-29 19:19:37

你试过这个吗?你知道吗

master_indices = {r[0]:i for i,r in enumerate(csv.reader(master)) if "/" in r[0]}

如果您想在所有行中找到“/”,请执行以下操作:

 master_indices = {r.split(",",1)[0]:i for i,r in enumerate(master) if "/" in r}

相关问题 更多 >

    热门问题