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

如何为Python脚本设置与仓库目录绑定的固定主目录?

解决Python脚本依赖仓库目录的路径问题

这个问题太常见了——你现在用os.getcwd()获取的是你执行脚本时的工作目录,而不是脚本本身所在的仓库根目录。所以当你在仓库外运行python dir1/dir2/file.py时,base_dir会指向你当前的外部目录,自然找不到CSV文件夹。

核心解决思路是:找到脚本文件所在的绝对路径,再根据仓库目录结构向上追溯到根目录,这样不管在哪里运行脚本,路径都不会出错。

方案1:使用os模块(兼容所有Python版本)

import os

# 获取当前脚本文件的绝对路径
script_full_path = os.path.abspath(__file__)
# 获取脚本所在的文件夹路径
script_dir = os.path.dirname(script_full_path)
# 向上追溯到仓库根目录(这里假设脚本在仓库下的dir1/dir2,需要连续调用两次dirname)
base_dir = os.path.dirname(os.path.dirname(script_dir))
# 拼接CSV目录路径(用os.path.join避免跨系统路径分隔符问题)
csv_dir = os.path.join(base_dir, 'CSV')

方案2:使用pathlib(Python3.4+推荐,语法更直观)

from pathlib import Path

# 获取当前脚本的绝对路径对象(resolve()确保是绝对路径)
script_path = Path(__file__).resolve()
# 向上两级定位到仓库根目录(根据你的目录结构调整parent的调用次数)
base_dir = script_path.parent.parent
# 直接用/拼接路径,pathlib会自动处理跨系统差异
csv_dir = base_dir / 'CSV'

注意事项

如果后续你的脚本在仓库内的位置发生变化(比如移动到其他子目录),记得调整向上追溯的层级(比如os.path.dirname的次数或者parent的调用次数),保证base_dir始终指向仓库根目录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.14 08:03:54