python呼叫檔案路徑

2022-09-13 15:48:08 字數 1659 閱讀 6240

1.獲取當前執行主指令碼方法:sys.ar**[0]和_ file _

(1)sys.ar**

乙個傳給python指令碼的指令引數列表。sys.ar**[0]是指令碼的名字。一般得到的是相對路徑,用os.path.abspath(sys.ar**[0])得到執行檔案的絕對路徑:?1

2dirname, filename = os.path.split(os.path.abspath(sys.ar**[0]))

os.path.realpath(sys.ar**[0])

如果在命令列執行sys.ar**返回直譯器路徑:[『/library/frameworks/python.framework/versions/3.6/bin/ipython3']

(2)_ _ file_ _

獲得當前執行模組所在的路徑,一般為相對路徑,用os.path.abspath(_ _ file_ _)得到執行檔案的絕對路徑:?1

2dirname, filename = os.path.split(os.path.abspath( _ _ file_ _))

os.path.realpath(_ _ file_ _)

注意:python控制台下,直接使用print _ _ file _ 是會導致 name 『 _ file _ ' is not defined錯誤的,因為這時沒有在任何乙個指令碼下執行,自然沒有 _ file _ _的定義了。

(3)sys.ar**[0]和_ _ file _ _的差異:在主執行檔案中時,兩者沒什麼差異,不過要是在不同的檔案下,就不同了,如a.py,b.py這兩個檔案 

執行a.py結果如下:

如上圖結果可以看出:如果都是a.py兩者結果無異,但是從在a中匯入b時執行的sys.ar**[0]還是指的是執行的主檔案:a.py而_ _ file_ _卻輸出的是b.py

2.sys.path

模組搜尋路徑的字串列表。由環境變數pythonpath初始化得到。是乙個目錄的列表,sys.path[0]是呼叫python直譯器的當前指令碼所在的目錄,即主執行檔案的父級目錄。

例子:如在/user/ybp/a.py的檔案a.py中執行:print(sys.path[0])==>/user/ybp,

在命令列執行返回空字串;

3.注意os.path是系統環境變數,要與上面區分開來,沒有os.path[0],os.path中的一些方法:

(1)os.path.split(path)

將路徑名稱分成頭和尾一對。尾部永遠不會帶有斜槓。如果輸入的路徑以斜槓結尾,那麼得到的空的尾部。

如果輸入路徑沒有斜槓,那麼頭部位為空。如果輸入路徑為空,那麼得到的頭和尾都是空。

(2)os.path.realpath(path)

返回特定檔名的絕對路徑,可以在命令列中執行。

4.os.getcwd()返回的是當前工作路徑,而不一定需要是在指令碼裡面執行,這個命令相當於pwd,可以在命令列中執行,返回的是絕對路徑;

Python中的相對檔案路徑的呼叫

先讓我們來看看乙個用到相對檔案路徑的函式呼叫的問題。假設現在有兩個指令碼檔案main.py和func.py,他們的路徑關係是 dir1 main.py dir2 func.py test.txt func.py的作用是提供load txt 函式,讀取同級目錄下test.txt檔案中的內容並返回。fu...

python檔案呼叫中相對路徑 絕對路徑的使用

當我們需要呼叫乙個檔案中的依賴於某個檔案的方法時,可能遇到相對路徑和絕對路徑的使用。比如說呼叫通過私鑰登入伺服器的方法。由於秘鑰檔案使用了相對路徑,在呼叫該方法時,會出現檔案不存的的提示。也就是說,通過相對路徑找不到私鑰檔案。首先,看一下在方法被呼叫時的路徑 在指令碼中新增下面的 import sy...

Python 獲取檔案路徑 專案路徑

tz zs file 在ide中獲取的是絕對路徑,在終端啟動時,啟動位置是本模組,則為相對路徑,由外部模組呼叫則獲取的是未經解析的絕對路徑。sys.path 0 忠實的表示啟動的檔案所在的路徑 os.getcwd 獲取的是工作空間的路徑。ide中可以設定working directory,終端啟動時...