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

为何open()提示找不到文件,pd.read_csv()却能正常打开该文件?

问题分析与解决办法

核心原因

出现open()报错找不到文件但pd.read_csv()能成功读取的情况,主要有两个常见诱因:

  • 当前工作目录不匹配:Python解释器的当前工作目录和你预期的目录不一致,open()使用相对路径时会基于这个目录查找文件;而pd.read_csv()可能因运行环境(如Jupyter Notebook)的特性,路径解析基于脚本/notebook所在目录,而非解释器的工作目录。
  • 路径转义问题:Windows系统中直接使用单反斜杠\作为路径分隔符,会被Python识别为转义字符(如\f、\n)导致路径解析错误;但pd.read_csv()内部会自动处理这类格式问题,规避转义报错。

解决步骤

  1. 确认当前工作目录
    运行以下代码查看Python解释器的当前工作目录:

    import os
    print(os.getcwd())
    

    对比该目录与目标文件所在目录是否一致,不一致则需调整路径或切换工作目录。

  2. 切换工作目录(可选)
    若不想使用绝对路径,可先切换到文件所在目录:

    import os
    os.chdir("目标文件所在的绝对路径")
    

    之后即可用相对路径调用open()读取文件。

  3. 使用绝对路径读取文件
    直接用绝对路径调用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()
    
  4. 核对路径拼写
    仔细检查open()中的路径,确保文件名、文件夹名无拼写错误(Linux/macOS区分大小写,Windows不区分,但open()会严格按路径查找)。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.19 20:50:23