Python读写文件遇FileNotFoundError,求长期解决方案
解决Python文件读写的FileNotFoundError:不用每次都切换目录
先说说你找到的这段代码的作用
这段代码是通过os.chdir()切换到文件所在的目录,让后续open()只用文件名就能找到文件。但完全不需要每次都加这段代码,有更稳妥、易维护的长期方案。
推荐的长期解决方案
1. 直接使用绝对路径
不用切换目录,open()时直接写文件的完整路径。注意Windows路径的几种正确写法:
- 把反斜杠改成双反斜杠:
open("E:\\Python\\learn\\text.txt") - 用原始字符串(路径前加
r):open(r"E:\Python\learn\text.txt") - 用正斜杠(跨Windows/Linux通用):
open("E:/Python/learn/text.txt")
2. 用相对路径(项目移植首选)
把Python脚本和要读写的文件放在同一个文件夹里,直接写文件名即可:open("text.txt")。
如果文件在子文件夹,比如脚本在根目录,文件在data子文件夹,就写:open("data/text.txt")(这种写法全系统兼容)。
3. 使用pathlib模块(现代Python推荐)
Python 3.4+内置的pathlib模块,处理路径更直观,自动适配不同系统的路径分隔符,还能配合with语句自动关闭文件,代码简洁又安全:
from pathlib import Path # 定义文件路径(绝对/相对路径都支持) file_path = Path(r"E:\Python\learn\text.txt") # 相对路径写法:file_path = Path("text.txt") # 读取文件 with file_path.open() as f: data = f.read() print(data)
额外注意事项
- 确认路径拼写正确,尤其是文件名的大小写(Linux/macOS严格区分,Windows不区分,但统一写法更稳妥)。
- 检查文件确实存在于你指定的路径,别把文件存错文件夹了。
- 尽量少用
os.chdir():切换目录后,后续所有文件操作都会基于这个目录,多文件操作时容易搞混路径,反而增加出错概率。
内容的提问来源于stack exchange,提问作者Pratik Vinod
相关产品推荐
相关产品推荐

