模块如何获取在python中导入文件的路径?

时间:2016-10-20 14:51:54

标签: python os.path

我有导入app.py的文件module.py。我需要找出app.py的路径,例如:/home/user/app/app.py,它在同一个文件夹中工作正常,但是当我从另一个文件夹中调用app.py时,我当前的目录是{{ 1}}我获取当前目录而不是/home/user所在的目录。

这是module.py的内容。

app.py< - 这将返回我的工作路径

os.getcwd()< - 这将返回模块路径

最佳方法是什么?我有点陷入困境,并没有在谷歌上发现任何关于它的事情。

1 个答案:

答案 0 :(得分:0)

Use the following lines of code in the module you are importing:

Module.py

import inspect

# Return the frame object for the caller's stack frame.
frame = inspect.currentframe()

# Get calling rame from list of all call frames.
calling_frame = inspect.getouterframes(frame)[1][0]

#Prints a traceback tuple.
print inspect.getframeinfo(calling_frame)

Also, there is one more hack that you can try. I won't suggest it for production code but its just for fun :) :

1. Generate the exception in your module.
2. Catch it and find the Traceback.
3. Manipulate the Traceback according to you requirement.