获得执行的Python脚本所在的目录

1
2
3
ABSPATH=os.path.abspath(os.path.dirname(sys.argv[0])) #主执行文件路径
ABSPATH=os.path.abspath(os.path.dirname(__file__)) #自身文件路径
#os.path.realpath()替换os.path.abspath()的话,可以得到软连接的真实地址

__file__

返回当前文件路径

sys.argv[0]

返回python后第一个命令名

  • python a.py #返回a.py
  • python b/a.py #返回b/a.py
  • 直接点击a.py #返回c://绝对路径/a.py

**file** 与 sys.argv[0] 比较

import时候sys.argv[0]返回主执行文件路径,而__file__总返自身文件的路径

os.path.abspath(path)

返回path规范化的绝对路径

os.path.dirname(path)

返回path的dirname 即os.path.split(path)的第一个参数