我正在尝试获取当前正在运行的Python脚本的名称。
我有一个名为foo.py的脚本,我想这样做,以便获得脚本名称:
print(Scriptname)
我正在尝试获取当前正在运行的Python脚本的名称。
我有一个名为foo.py的脚本,我想这样做,以便获得脚本名称:
print(Scriptname)
当前回答
如果你在基类中获取脚本路径,使用此代码,子类将正确获取脚本路径。
sys.modules[self.__module__].__file__
其他回答
由于OP要求当前脚本文件的名称,我更喜欢
import os
os.path.split(sys.argv[0])[1]
从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
对于现代Python版本(3.4+),Path(__file__).name应该更习惯。同时,路径(__file__)。Stem提供了不带.py扩展名的脚本名称。
import sys
print(sys.argv[0])
这将为python打印foo.py,为python打印dir/foo.py,等等。它是python的第一个参数。(注意py2exe之后是foo.exe。)
试试这个:
print __file__