**:
import os,sys
使用sys.path[0]、sys.argv[0]、os.getcwd()/os.path.abspath(__file__)、os.path.realpath(__file__)
sys.path
是python會去尋找模組的搜尋路徑列表,sys.path[0
]和sys.argv[0]
是一回事因為python會自動把sys.argv[0]
加入sys.path
。
如果你在c:\test
目錄下執行python getpath\getpath.py
,那麼os.getcwd()
會輸出「c:\test」
,sys.path[0]
會輸出「c:\test\getpath」
。
如果你用py2exe
模組把python
指令碼編譯為可執行檔案,那麼sys.path[0]
的輸出還會變化:
如果把依賴庫用預設的方式打包為zip檔案,那麼sys.path[0]
會輸出「c:\test\getpath\libarary.zip」
;
如果在setup.py
裡面指定zipfile=none
引數,依賴庫就會被打包到exe檔案裡面,那麼sys.path[0]
會輸出「c:\test\getpath\getpath.exe」
。
#!/bin/env python
#-*- encoding=utf8 -*-
import os,sys
if __name__=="__main__":
print "__file__=%s" % __file__
print "os.path.realpath(__file__)=%s" % os.path
.realpath(__file__)
print "os.path.dirname(os.path.realpath(__file__))=%s" % os.path
.dirname(os.path
.realpath(__file__))
print "os.path.split(os.path.realpath(__file__))=%s" % os.path
.split(os.path
.realpath(__file__))[0]
print "os.path.abspath(__file__)=%s" % os.path
.abspath(__file__)
print "os.getcwd()=%s" % os.getcwd()
print "sys.path[0]=%s" % sys.path[0]
print "sys.argv[0]=%s" % sys.argv[0]
輸出結果:
d:\>python ./python_test/test_path.py
__file__=./python_test/test_path.py
os.path
.realpath(__file__)=d:\python_test\test_path.py
os.path
.dirname(os.path
.realpath(__file__))=d:\python_test
os.path
.split(os.path
.realpath(__file__))=d:\python_test
os.path
.abspath(__file__)=d:\python_test\test_path.py
os.getcwd()=d:\
sys.path[0]=d:\python_test
sys.argv[0]=./python_test/test_path.py
os.getcwd()
「d:\」
,取的是起始執行目錄sys.path[0]
或sys.argv[0]
「d:\python_test」
,取的是被初始執行的指令碼的所在目錄,os.path.split(os.path.realpath(__file__))[0]
「d:\python_test」
,取的是__file__
所在檔案test_path.py
的所在目錄
正確獲取當前的路徑:
__file__是當前執行的檔案
# 獲取當前檔案__file__的路徑
print "os.path.realpath(__file__)=%s" % os.path.realpath(__file__)
# 獲取當前檔案__file__的所在目錄
print "os.path.dirname(os.path.realpath(__file__))=%s" % os.path.dirname(os.path.realpath(__file__))
# 獲取當前檔案__file__的所在目錄
print "os.path.split(os.path.realpath(__file__))=%s" % os.path.split(os.path.realpath(__file__))[0]
Python獲取當前路徑
refs 假設py檔案路徑為 f seg myresearch myproject 2 test.py import sys print sys.argv 0 獲得的是當前執行指令碼的位置 若在命令列執行的該命令,則為空 12執行結果 在python指令碼中執行的結果 f seg myresearc...
Python程式設計獲取當前路徑
在編寫各類應用程式時,獲取當前路徑一直是乙個經典問題,只有獲取了當前路徑才可以進一步找到所有同路徑下的其它檔案。python程式語言也可以通過一些系統呼叫來獲得當前路徑。本文給出的模組不僅僅可以獲取當前路徑,也可以形成sqlobject使用的uri形式字串,以當前路徑下的指定檔名合成資料庫路徑。im...
C C 獲取當前路徑
獲取當前工作目錄是使用函式 getcwd。cwd指的是 current working directory 這樣就好記憶了。函式說明 函式原型 char getcwd char buffer,int len 引數 buffer是指將當前工作目錄的絕對路徑copy到buffer所指的記憶體空間,len...