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

如何让跨目录调用的Python脚本正常使用相对路径读取文件?

问题描述

项目目录结构

在kek_test_core.py中,我编写了一个使用相对路径导入all_dev_list.csv的函数。我在父目录的kek_test.py中导入了该脚本。如何在不将相对路径改为绝对路径、不修改chdir的前提下,让kek_test.py找到all_dev_list.csv?

我已尝试将special_models添加到sys.path中,但未生效。或许我可以将当前目录设置为目录列表之类的?

解决方案
  • 利用__file__属性定位脚本目录,构建可靠的文件路径
    在kek_test_core.py里,把读取CSV的代码改成如下形式:

    import os
    
    # 获取kek_test_core.py所在的绝对目录
    core_script_dir = os.path.dirname(os.path.abspath(__file__))
    # 拼接得到CSV文件的绝对路径
    csv_file_path = os.path.join(core_script_dir, "all_dev_list.csv")
    
    # 后续用这个路径读取文件
    with open(csv_file_path, 'r', encoding='utf-8') as f:
        # 你的文件读取逻辑
        pass
    

    这种方式会以kek_test_core.py自身的位置为基准定位CSV文件,不管从哪个目录调用该脚本,都能正确找到目标文件,完全不需要修改工作目录或硬编码绝对路径。

  • 补充说明
    你之前尝试把special_models加入sys.path没用,是因为sys.path的作用是让Python找到可导入的模块/包,而非定位数据文件,所以这个操作解决不了CSV的路径问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 07:22:05