python 打印路径的几种结果

来源:互联网 发布:mac all fired up试色 编辑:程序博客网 时间:2024/05/20 06:55

文件 Find_Path.py

print 'os.getcwd():', os.getcwd()

print 'os.path.abspath(os.curdir):', os.path.abspath(os.curdir)
print "os.path.abspath('.'):", os.path.abspath('.')
print 'sys.path[0]:', sys.path[0]

print 'sys.argv[0]:', sys.argv[0]


在命令行窗口下执行Find_Path.py

结果如下:


使用命令 pyinstaller Find_Path.py将Find_Path.py打包成exe程序,执行Find_Path.exe,结果如下:



使用命令pyinstaller -F Find_Path.py重新将Find_Path.py打包成单个exe程序时,执行Find_Path.exe,结果如下:



综上分析:

os.getcwd()、os.path.abspath(os.curdir)、os.path.abspath('.')在以上三种情况下的结果都是执行文件所在的目录

sys.argv[0]是当前执行的Python脚本的文件名,不一定是当前的路径。

sys.path[0]是当前系统环境变量的第一个值。当运行.py和以生成多文件模式打包的可执行文件时,输出结果是程序的当前目录。而由单文件模式打包生成的可执行文件,输出结果是系统的默认当前工作目录。

由于os.getcwd()、os.path.abspath(os.curdir)、os.path.abspath('.')是获取的当前python 的工作目录,而工作目录是可以通过os.chdir(path)更改的。

os.chdir(path):改变当前工作目录到指定路径path。

所以如果想要获取当前路径,最稳定的方法是:os.path.dirname(sys.argv[0])

原创粉丝点击