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

如何修改Python代码实现两个CSV文件的内容对比与匹配显示?

实现两个CSV文件匹配内容的对比展示

你的现有代码仅读取并打印了两个文件的全部内容,要实现匹配内容展示,可以通过将其中一个文件的内容存入集合(提升查找效率),再遍历另一个文件逐行检查匹配项,具体修改如下:

修改后的基础版代码

# 读取学生名单CSV,将每行内容存入集合(自动去重,且查找速度快)
with open("student roster example.csv", "r") as roster_file:
    roster_content = {line.rstrip() for line in roster_file}

# 读取课程代码CSV,逐行检查是否在学生名单中存在匹配
with open("Program codes.csv", "r") as courses_file:
    print("两个文件的匹配内容:")
    for line in courses_file:
        current_line = line.rstrip()
        if current_line in roster_content:
            print(current_line)

代码逻辑说明

  1. 用集合存储第一个文件的行内容:集合的成员查找操作比列表更高效,适合批量对比场景。
  2. 遍历第二个文件的每一行:去除换行符后检查是否存在于集合中,存在则输出,即两个文件的共同内容。
  3. 如果需要双向匹配(同时找出第一个文件中在第二个文件里的内容),可以再创建第二个文件的集合,重复遍历检查逻辑。

进阶处理(针对带列结构的CSV)

如果你的CSV是多列格式(比如每行包含专业名称+代码),需要指定匹配列的话,可以用csv模块解析列数据后再对比:

import csv

# 假设我们要匹配第一列的内容
with open("student roster example.csv", "r") as roster_file:
    reader = csv.reader(roster_file)
    # 提取第一列内容存入集合
    roster_columns = {row[0].rstrip() for row in reader}

with open("Program codes.csv", "r") as courses_file:
    reader = csv.reader(courses_file)
    print("匹配的内容:")
    for row in reader:
        if row[0].rstrip() in roster_columns:
            # 打印整行内容
            print(",".join(row))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 08:10:30