如果在文件`a.py`中有方法`t1`,并且有一个文件`b.py`,它从`a.py`文件中调用方法`t1`。在方法`t1`中如何获取文件`b.py`的完整/绝对路径?
使用inspect模块(就像这里:how to get the caller's filename, method name in python),可以获取到文件的相对路径,但是似乎它不包含绝对路径(或者有其他的属性对象,可访问以获得它?)。
例如:
a.py:
使用inspect模块(就像这里:how to get the caller's filename, method name in python),可以获取到文件的相对路径,但是似乎它不包含绝对路径(或者有其他的属性对象,可访问以获得它?)。
例如:
a.py:
def t1():
print('callers absolute path')
b.py:
from a import t1
t1() # should print absolute path for `b.py`
t1()
应该返回a.py
的绝对路径吗? - DirtyBita.py
的路径,你只需使用__file__
或sys.path[0]
。但我需要调用者的路径,而不是被调用方法的路径。 - Andriusos.path.realpath
与组合使用会始终返回正确的绝对路径?因为realpath
函数将当前工作目录与相对路径组合在一起。 - Andrius__file__
总是一个有效的路径,也就是说,它相对于当前工作目录。 (除非您在代码中更改了CWD,但那就是您自己的问题...) - Aran-Fey