我想在Python中获取函数的文件路径。
怎么做?
例如,
import keras.backend as K
y = K.resize_images(x, 2, 2, 'channels_last')
path = function(K.resize_images)
print(path)
#C:\Program Files\Python36\Lib\site-packages\keras\backend\tensorflow_backend.py
谢谢。
答案 0 :(得分:4)
您可以使用getfile()
中的inspect module功能来实现此目的。
例如,给定以下文件:
$ cat inspect-example.py
#!/usr/bin/python
import os
import inspect
import external_def
def foo():
pass
print os.path.abspath(inspect.getfile(foo))
print os.path.abspath(inspect.getfile(external_def.bar))
$ cat external_def.py
def bar():
pass
执行inspect_example.py
会产生以下输出:
$ python inspect-example.py
/home/chuckx/code/stackoverflow/inspect-example.py
/home/chuckx/code/stackoverflow/external_def.py
答案 1 :(得分:0)
如果要获取包含函数的文件的路径,可以尝试以下代码,请注意:此代码仅在对象类型为' function'
时有效
def get_path (func):
if type (func).__name__ == 'function' :
return func.__code__.co_filename
else:
raise ValueError("'funct' must be a function")
答案 2 :(得分:0)
使用Python路径类:
Path('.').resolve()