为什么修改文本文件内容后Python无法读取打印其内容?
Python修改文件后无法打开、无输出问题解决方案
常见原因及修复方法
- 文件缓存未写入磁盘
写入文件后未主动调用close()方法、也未使用with上下文管理器管理文件对象时,写入的内容会暂存在内存缓存中,没有实际写入磁盘,后续打开会出现空文件、内容损坏的问题。
推荐所有文件操作都使用with语法,执行结束后会自动释放文件资源、刷入缓存:# 写入文件正确示例 with open("demo.txt", "w", encoding="utf-8") as f: f.write("修改后的文本内容") - 文件打开模式使用错误
用w/w+模式打开已有文件时,会直接清空文件原有内容,自然读不到任何输出。需要读取文件请使用r/r+/a+等支持读取的模式,使用r+/a+模式时需要手动将文件指针移到开头才能读取完整内容:with open("demo.txt", "r+", encoding="utf-8") as f: f.write("新增内容") f.seek(0) # 调整指针到文件起始位置 print(f.read()) # 正常读取内容 - 编码不匹配
写入、读取文件时使用的编码不一致,会导致文件内容乱码、被识别为损坏文件无法打开。读写操作都要显式指定encoding参数,不要依赖操作系统默认编码。 - 操作路径不匹配
写入时使用相对路径,后续读取时的工作目录和写入时不一致,会出现打开空旧文件、找不到文件的问题。可以通过print(os.path.abspath("demo.txt"))确认实际操作的文件路径是否匹配。
内容的提问来源于stack exchange,提问作者anon0422
相关产品推荐
相关产品推荐

