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

如何基于项目根目录获取文件的相对路径?

获取Python文件相对于项目根目录的路径

给你两种实用的实现方式,直接套用就能解决问题:

方法1:用os.path模块(兼容Python2和3)

先拿到文件的完整路径,再指定项目根目录的绝对路径,最后用os.path.relpath计算相对路径:

import os
import my_file

# 获取文件完整路径
full_file_path = my_file.__file__
# 项目根目录的绝对路径
project_root = "/Users/UserName/project"
# 计算相对路径
relative_path = os.path.relpath(full_file_path, project_root)
print(relative_path)  # 输出结果就是你要的first_level/second/somename/my_file.py

方法2:用pathlib模块(Python3.4+推荐,代码更简洁)

pathlib是Python3.4之后推出的面向对象路径工具,写法更直观:

from pathlib import Path
import my_file

# 把路径转为Path对象
full_path = Path(my_file.__file__)
# 项目根目录的Path对象
project_root = Path("/Users/UserName/project")
# 直接计算相对路径
relative_path = full_path.relative_to(project_root)
print(relative_path)  # 同样输出目标路径

额外技巧:避免硬编码项目根目录

如果不想把项目根目录的路径写死,可以通过遍历路径自动找到project目录:

from pathlib import Path
import my_file

full_path = Path(my_file.__file__)
# 向上遍历直到找到名为project的文件夹
current_dir = full_path
while current_dir.name != "project":
    current_dir = current_dir.parent
project_root = current_dir

# 再计算相对路径
relative_path = full_path.relative_to(project_root)
print(relative_path)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.19 14:57:24