Python读取文件替换字符串后写入,输出文件为空求助
解决Python文件替换后输出为空的问题
先排查几个常见问题,按优先级来:
1. 确认文件路径是否正确
VSCode的默认工作目录不一定是你存放file.txt的文件夹。你可以在代码开头加两行测试当前工作目录:
import os print(os.getcwd()) # 打印当前程序运行的目录
运行后看输出的路径,把file.txt放到这个目录里,或者直接用绝对路径替换文件名,比如:
fin = open("/Users/你的用户名/Desktop/file.txt", "rt") # 换成你实际的文件路径
2. 改用上下文管理器(with语句)避免资源泄漏
手动调用close()有时候会因为程序异常或缓冲未刷新导致内容没写入。用with语句会自动处理文件关闭和缓冲区刷新,更安全可靠:
with open("file.txt", "rt", encoding="utf-8") as fin, open("out.txt", "wt", encoding="utf-8") as fout: for line in fin: fout.write(line.replace('old', 'new'))
这个版本不需要手动写close(),能确保所有内容都写入文件。
3. 检查文件编码是否匹配
如果file.txt不是UTF-8编码(比如用了GBK等其他编码),读取时未指定编码可能导致读不到内容。打开文件时明确指定encoding参数,Mac上一般默认用UTF-8,先尝试这个配置即可。
按上面的步骤排查,基本能解决out.txt为空的问题。
内容的提问来源于stack exchange,提问作者Tue Day
相关产品推荐
相关产品推荐

