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

Python对比两个文本文件内容一致仍判定不同的问题求解

问题根因

你代码中读取文件内容的逻辑存在错误:str(open("text1.txt", "r")) 并没有读取文件的实际内容,只是把open()返回的文件对象本身转成了字符串,得到的是类似<_io.TextIOWrapper name='text1.txt' mode='r' encoding='cp936'>格式的字符串,两个文件对应的文件对象标识、内存地址本来就不一样,所以永远会判定不相等。

修复方案

你需要调用文件对象的read()方法读取实际内容,优化后的代码如下:

data = str(information)
# 写入对照组文件
with open("text1.txt", "w+", encoding="utf-8") as f:
    f.write(data)

while True:
    data2 = str(newinfo)
    # 写入实时更新的文件
    with open("text2.txt", "w+", encoding="utf-8") as f:
        f.write(data2)
    
    # 正确读取两个文件的内容进行对比
    with open("text1.txt", "r", encoding="utf-8") as f:
        read = f.read()
    with open("text2.txt", "r", encoding="utf-8") as f:
        read2 = f.read()
    
    if read2 != read:
        Notifica = True
        break

额外优化点

  • 统一指定文件编码为utf-8,避免不同系统默认编码不一致导致的内容判定误差
  • 使用with上下文管理器操作文件,不需要手动调用close(),避免文件句柄泄漏
  • 可以添加适当的循环休眠时间,避免频繁读写文件占用过多CPU资源

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 06:57:00