You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Python csv模块校验列值是否存在于另一文件并输出对应行

使用Python csv模块实现跨文件列值匹配并输出对应行

实现思路

  1. 读取File1的number列所有值,存入集合(集合的成员查找效率远高于列表,适合大文件场景)
  2. 遍历File2的每一行,检查该行的number值是否存在于上述集合中
  3. 若存在,直接输出该行内容

完整代码

import csv

# 读取File1的number列值,存入集合
file1_numbers = set()
with open('File1.csv', 'r', newline='', encoding='utf-8') as f1:
    reader = csv.DictReader(f1)
    for row in reader:
        # 将number转为整数,避免字符串格式差异导致匹配失败
        num = int(row['number'])
        file1_numbers.add(num)

# 遍历File2,匹配并输出符合条件的行
with open('File2.csv', 'r', newline='', encoding='utf-8') as f2:
    reader = csv.DictReader(f2)
    for row in reader:
        current_num = int(row['number'])
        if current_num in file1_numbers:
            # 按原文件格式输出整行,可根据需求调整输出样式
            print(f'"{row["time"]}",{row["text"]},{row["number"]}')

代码说明

  • 使用csv.DictReader通过表头字段名直接获取列值,无需关心列索引,代码更易维护
  • 将number转为整数类型匹配,能规避csv文件中数值是否带引号、前后空格等格式问题
  • 集合存储File1的number值,确保每次查找都是O(1)时间复杂度,大文件场景下性能优势明显

测试输出

运行代码后会输出:

"15:48:34.865",YES,5145

内容的提问来源于stack exchange,提问作者Slater

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 16:07:35