Python - 获取调用函数的完整文件路径?

时间:2015-12-19 05:14:47

标签: python

给定一个模块mymodule.py;并在其中

def foo():
    X = # file path where foo was called from
    print(X)

我如何做评论中描述的内容?即,如果在test.py中我做了

from mymodule import foo
foo()

然后在终端中运行python3 test.py,它应该打印test.py的完整文件路径

2 个答案:

答案 0 :(得分:4)

您可以使用sys.argv[0]获取主文件的名称,然后您可以使用os.path.realpath()获取其完整路径:

import os
import sys

def foo():
    X = os.path.realpath(sys.argv[0])
    print(X)

演示:

kevin@Arch ~> python test.py 
/home/kevin/test.py

答案 1 :(得分:0)

您可以使用os.path.realpath获取执行文件的完整路径:

import os

def func():
  full_path = os.path.realpath(__file__)
  print(full_path)

if (__name__ == "__main__"):
  func()