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

如何使用Python比较两个文本文件并输出差异及一致性判断结果

文本文件比对实现方案

需求

  • 比对两个文本文件内容是否完全一致
  • 内容完全一致输出Yes
  • 存在差异输出No,同时打印两份文件的差异内容

示例

文件1内容:

  • Hello world!
  • abc
    文件2内容:
  • Hello world!
  • xyz
    预期输出:
  • No
  • abc
  • xyz

原有代码问题

你写的代码存在几个明显逻辑错误:

  • 嵌套循环逻辑不合理,遍历完第一个文件的第一行后,第二个文件的指针已经走到末尾,后续行的比对会直接失效
  • 只要有一行匹配就打印Yes,不符合「整体内容完全一致才输出Yes」的需求
  • 没有处理两个文件行数不一致的场景
  • 未手动关闭文件句柄,存在资源泄漏风险

修正后代码

first_file = input("输入第一个文件名:")
second_file = input("输入第二个文件名:")

# 用with上下文管理器自动管理文件资源
with open(first_file, 'r', encoding='utf-8') as f1, open(second_file, 'r', encoding='utf-8') as f2:
    lines1 = f1.readlines()
    lines2 = f2.readlines()

identical = True
diff_content = []
max_length = max(len(lines1), len(lines2))

for idx in range(max_length):
    # 处理行数不一致的情况
    l1 = lines1[idx].strip('\n') if idx < len(lines1) else "[文件1无对应行]"
    l2 = lines2[idx].strip('\n') if idx < len(lines2) else "[文件2无对应行]"
    if l1 != l2:
        identical = False
        diff_content.append(l1)
        diff_content.append(l2)

if identical:
    print("Yes")
else:
    print("No")
    for line in diff_content:
        print(line)

代码说明

  • 支持两个文件行数不一致的差异比对场景
  • 自动处理文件资源的打开关闭,不会出现资源泄漏
  • 输出逻辑完全匹配需求要求

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 00:48:03