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

Python pandas如何从同级目录读取CSV文件?相对路径报错如何解决?

报错根本原因

你使用的相对路径../dir2/mycsv.csv是相对于执行python命令时的当前工作目录的,而非script.py文件本身的存放目录。只有你在dir1目录下执行脚本时,这个路径才能正常定位到文件,只要运行脚本的目录发生变化,就会出现找不到文件的报错。

解决方案

推荐使用第一种方案,兼容性最高:

  • 方案1:基于脚本本身路径拼接目标csv的绝对路径
    这种写法不受运行脚本的工作目录影响,无论在哪个目录执行都能正确定位到文件。
    使用os模块的写法:
    import os
    import pandas as pd
    
    # 获取当前script.py文件所在的绝对目录
    script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接得到mycsv.csv的绝对路径
    csv_path = os.path.join(script_dir, "..", "dir2", "mycsv.csv")
    df = pd.read_csv(csv_path)
    
    Python 3.4及以上版本可以用更简洁的pathlib写法:
    from pathlib import Path
    import pandas as pd
    
    csv_path = Path(__file__).parent.parent / "dir2" / "mycsv.csv"
    df = pd.read_csv(csv_path)
    
  • 方案2:根据运行目录调整相对路径
    如果你每次都会在固定目录运行脚本,可以先执行以下代码查看当前工作目录,再对应调整相对路径:
    import os
    print(os.getcwd())
    
    比如你在parent_dir目录下运行脚本,相对路径就需要改为pd.read_csv("dir2/mycsv.csv");只有在dir1目录下运行时,你原来的写法才生效。
注意事项

生产环境尽量不要使用硬编码的相对路径,基于__file__拼接路径的方式兼容性最好,可避免因运行目录变化导致的文件找不到问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 00:42:04