如何获取调用 python 函数的脚本名称?

Chr*_*tta 2 python

我知道其中__file__包含包含代码的文件名,但是有没有办法获取调用该函数的脚本/文件的名称?

如果我有一个名为filenametest_b.py

def printFilename():
    print(__file__)
Run Code Online (Sandbox Code Playgroud)

我将函数导入filenametest_a.py

from filenametest_b import *

printFilename()
Run Code Online (Sandbox Code Playgroud)

我得到:

C:\Users\a150495>python filenametest_a.py
C:\Users\a150495\filenametest_b.py
Run Code Online (Sandbox Code Playgroud)

我可以在b文件中执行某些操作来打印文件名吗a

Mar*_*ers 5

您可以打印sys.argv[0]以获取脚本文件名。

要获取调用者的文件名,您需要使用该sys._getframe()函数来获取调用框架,然后您可以从中检索文件名:

import inspect, sys

print inspect.getsourcefile(sys, sys._getframe(1))
Run Code Online (Sandbox Code Playgroud)