#coding=utf-8
import sys
import os
'''
以绝对路径运行脚本时:
'''
print('{0}:{1}'.format("sys.argv[0]",sys.argv[0]))
print('{0}:{1}'.format("sys.path[0]",sys.path[0]))
print('{0}:{1}'.format("os.getcwd()",os.getcwd()))
结果:
分析:
sys里提供的
argv[0]:提供执行脚本运行时的路径(因为以绝对路径运行脚本于是打印出来的是脚本的绝对路径)
path[0]:提供执行脚本目录
os.getcwd()同sys.path[0]
help(sys)也可以找到下面的说明
接下来看以相对路径执行脚本时:
#coding=utf-8
import sys
import os
'''
以相对路径运行脚本时:
'''
print('{0}:{1}'.format("sys.argv[0]",sys.argv[0]))
print('{0}:{1}'.format("sys.path[0]",sys.path[0]))
print('{0}:{1}'.format("os.getcwd()",os.getcwd()))
结果:
发现sys.argv[0]有变化其余不变
接下来再看一个"__file__"
#coding=utf-8
import sys
import os
'''
分别以以相对路径运行脚本时:
'''
print('{0}:{1}'.format("__file__",__file__))
结果:
发现它的效果与sys.argv[0]一致
综上:
一般情况下:
sys.argv[0]同__file__
os.getcwd()同sys.path[0]
当想获取脚本的绝对路径时,可以用以下方法:
os.path.abspath(__file__)
os.path.abspath(sys.argv[0])