如何在Python中获取函数的路径?

时间:2018-06-04 04:51:18

标签: python

我想在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

谢谢。

3 个答案:

答案 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()