python獲取當前路徑

2021-08-08 22:56:25 字數 2813 閱讀 5160

**:

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...