为何open()提示找不到文件,pd.read_csv()却能正常打开该文件?
问题分析与解决办法
核心原因
出现open()报错找不到文件但pd.read_csv()能成功读取的情况,主要有两个常见诱因:
- 当前工作目录不匹配:Python解释器的当前工作目录和你预期的目录不一致,
open()使用相对路径时会基于这个目录查找文件;而pd.read_csv()可能因运行环境(如Jupyter Notebook)的特性,路径解析基于脚本/notebook所在目录,而非解释器的工作目录。 - 路径转义问题:Windows系统中直接使用单反斜杠
\作为路径分隔符,会被Python识别为转义字符(如\f、\n)导致路径解析错误;但pd.read_csv()内部会自动处理这类格式问题,规避转义报错。
解决步骤
确认当前工作目录
运行以下代码查看Python解释器的当前工作目录:import os print(os.getcwd())对比该目录与目标文件所在目录是否一致,不一致则需调整路径或切换工作目录。
切换工作目录(可选)
若不想使用绝对路径,可先切换到文件所在目录:import os os.chdir("目标文件所在的绝对路径")之后即可用相对路径调用
open()读取文件。使用绝对路径读取文件
直接用绝对路径调用open(),推荐用以下方式避免转义问题:# 方式1:raw字符串(前缀r) with open(r"C:\Users\YourName\Documents\data.csv", "r") as f: content = f.read() # 方式2:正斜杠作为分隔符 with open("C:/Users/YourName/Documents/data.csv", "r") as f: content = f.read() # 方式3:os.path.join拼接(跨平台兼容) import os file_path = os.path.join("C:", "Users", "YourName", "Documents", "data.csv") with open(file_path, "r") as f: content = f.read()核对路径拼写
仔细检查open()中的路径,确保文件名、文件夹名无拼写错误(Linux/macOS区分大小写,Windows不区分,但open()会严格按路径查找)。
内容的提问来源于stack exchange,提问作者Ololade Ogunleye
相关产品推荐
相关产品推荐

