mModule.__name__
导入时将有助于返回模块的名称。但是当作为脚本运行时,它会(也有帮助)返回
__main__
有没有一种简单的方法来获取当前作为脚本运行的模块的文件名?
mModule.__name__
导入时将有助于返回模块的名称。但是当作为脚本运行时,它会(也有帮助)返回
__main__
有没有一种简单的方法来获取当前作为脚本运行的模块的文件名?
我认为这sys.argv[0]
是你最好的选择 - 它应该适用于任何模块,而不仅仅是主模块。
请注意,这可能是也可能不是完整路径,您必须测试"-c"
空字符串,否则用于os.path.abspath
获取完整路径。
试试__file__
。
要获得完整路径,
import os
print os.path.abspath(__file__)
您可以使用__file__
:
__file__ 是加载模块的文件的路径名,如果它是从文件加载的。
这包含一个绝对路径名,因此,为了获取脚本文件名,请使用:
import os
print os.path.basename(__file__)
__file__
在任何情况下都有效:文件作为脚本执行,文件作为模块导入。