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

Python中如何从被导入文件获取调用文件的路径?

解决在b.py中获取a.py路径的问题

方案一:在a.py中主动传递自身路径给b模块

修改a.py,先获取自身绝对路径,再导入b并传递该路径:

import sys
import os
sys.path.append("path")
# 获取a.py的绝对路径
a_script_path = os.path.realpath(__file__)
import b
# 将路径传递给b模块
b.a_path = a_script_path

在b.py中直接使用该变量:

# 打印从a.py传递过来的路径
print(a_path)

方案二:通过调用栈获取调用者(a.py)的路径

在b.py中利用Python的调用栈API,提取导入它的a.py的路径:

import os
import sys

def get_a_script_path():
    # 获取调用栈第二层(对应a.py导入b时的上下文)
    caller_frame = sys._getframe(1)
    # 从调用栈信息中提取a.py的路径
    caller_path = caller_frame.f_code.co_filename
    return os.path.realpath(caller_path)

# 调用函数获取并打印a.py路径
print(get_a_script_path())

注意事项

  • 方案一逻辑清晰、耦合性低,推荐优先使用;
  • 方案二依赖Python调用栈实现,若后续版本调整相关API,可能出现兼容性问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.23 11:28:10