我正在尝试获取当前正在运行的Python脚本的名称。
我有一个名为foo.py的脚本,我想这样做,以便获得脚本名称:
print(Scriptname)
我正在尝试获取当前正在运行的Python脚本的名称。
我有一个名为foo.py的脚本,我想这样做,以便获得脚本名称:
print(Scriptname)
当前回答
注意__file__将给出该代码所在的文件,该文件可以导入,并且与正在解释的主文件不同。要获取主文件,可以使用特殊的__main__模块:
import __main__ as main
print(main.__file__)
注意__main__。__file__在Python 2.7中有效,但在3.2中无效,因此使用上面的import-as语法使其可移植。
其他回答
试试这个:
print __file__
以上答案很好。但我发现这种方法使用上述结果更有效。 这将导致实际的脚本文件名而不是路径。
import sys
import os
file_name = os.path.basename(sys.argv[0])
如果你在基类中获取脚本路径,使用此代码,子类将正确获取脚本路径。
sys.modules[self.__module__].__file__
从Python 3.5开始,你可以简单地做:
from pathlib import Path
Path(__file__).stem
更多信息请访问:https://docs.python.org/3.5/library/pathlib.html#pathlib.PurePath.stem
例如,在我的用户目录下有一个名为test.py的文件,里面是这样的:
from pathlib import Path
print(Path(__file__).stem)
print(__file__)
运行这个输出:
>>> python3.6 test.py
test
test.py
我们可以尝试这样做,以获得当前的脚本名称没有扩展名。
import os
script_name = os.path.splitext(os.path.basename(__file__))[0]