在执行第一个模块时,获取第3个模块中的函数内导入的第2个模块的文件路径

时间:2017-06-20 22:09:00

标签: python python-3.x

我正在Y.py导入模块X.py,模块my_func()中有一个函数Z.py我正在导入Y.py如何打印执行Y.pymy_func()X.py的路径,而不将任何参数传递给my_func()

模块X

# this is module X

import Y

#some code

模块Y

# this is module Y

from Z import *
my_func()

#some code

模块Z

# this is module Z

def my_func()
    print("the path of Y module is: ")  # here I want to print the path of Y.py

# do something with the path of Y.py

当我执行X.py时,它应该打印Y.py的路径,我尝试使用os.getcwd()但是它给了我X.py的路径而不是Y.py的路径

1 个答案:

答案 0 :(得分:2)

您使用模块对象的__file__属性:

import Y

def my_func():
    path = Y.__file__