import os
import sys
if hasattr(sys, 'frozen'):
application_path = os.path.dirname(sys.executable)
elif __file__:
application_path = os.path.dirname(os.path.abspath(__file__))
【解读】
- hasattr(sys, ‘frozen’):判断程序是Python脚本生成的exe文件,还是本地的Python脚本
- 当程序是Python脚本生成的exe文件,它会在sys模块中添加’frozen’属性。因此可以通过sys中是否含有’frozen’,来判断程序是不是exe文件
- 当程序是本地的Python脚本,__file__属性就能满足要求
- sys.executable:给出 python可执行文件 的绝对路径
- 如果是Python脚本生成的exe文件,返回的是该exe文件的绝对路径
- 如果是本地的Python脚本,返回的是python解析器python.exe的绝对路径