python 打印路徑的幾種結果

文件 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])

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章