我正在尝试获取当前正在运行的Python脚本的名称。

我有一个名为foo.py的脚本,我想这样做,以便获得脚本名称:

print(Scriptname)

当前回答

如果你在基类中获取脚本路径,使用此代码,子类将正确获取脚本路径。

sys.modules[self.__module__].__file__

其他回答

由于OP要求当前脚本文件的名称,我更喜欢

import os
os.path.split(sys.argv[0])[1]

我们可以尝试这样做,以获得当前的脚本名称没有扩展名。

import os

script_name = os.path.splitext(os.path.basename(__file__))[0]

你可以使用__file__来获取当前文件的名称。当在主模块中使用时,这是最初调用的脚本的名称。

如果你想省略目录部分(可能会出现),你可以使用os.path.basename(__file__)。

你可以在不导入操作系统或其他库的情况下做到这一点。

如果你想获取当前python脚本的路径,使用:__file__

如果你只想得到没有.py扩展名的文件名,使用这个:

__file__.rsplit("/", 1)[1].split('.')[0]

如果你在基类中获取脚本路径,使用此代码,子类将正确获取脚本路径。

sys.modules[self.__module__].__file__