關於os路徑的位置

2021-08-22 14:40:06 字數 1903 閱讀 4941

記錄下os.path.dirname(_file_)使用

os.path.dirname(file)使用

該測試指令碼所在的位置:d:\第1層\第2層\第3層\第4層\第5層\test11.py

test11.py

import os

#該檔案所在位置:d:\第1層\第2層\第3層\第4層\第5層\test11.py

**path1 = os.path

.dirname(__file__)

print(path1)#獲取當前執行指令碼的絕對路徑

path2 = os.path

.dirname(os.path

.dirname(__file__)) #

print(path2)#獲取當前執行指令碼的絕對路徑(去掉最後乙個路徑)

path3 = os.path

.dirname(os.path

.dirname(os.path

.dirname(__file__)))

print(path3)#獲取當前執行指令碼的絕對路徑(去掉最後2個路徑)

path4 = os.path

.dirname(os.path

.dirname(os.path

.dirname(os.path

.dirname(__file__))))

print(path4)#獲取當前執行指令碼的絕對路徑(去掉最後3個路徑)

path5 = os.path

.dirname(os.path

.dirname(os.path

.dirname(os.path

.dirname(os.path

.dirname(__file__)))))

print(path5)#獲取當前執行指令碼的絕對路徑(去掉最後4個路徑)

path6 = os.__file__ #獲取os所在的目錄

print(path6)**

結果:

c:\python352\python.exe d:/第1層/第2層/第3層/第4層/第5層/test11.py

d:/第1層/第2層/第3層/第4層/第5層

d:/第1層/第2層/第3層/第4層

d:/第1層/第2層/第3層

d:/第1層/第2層

d:/第1層

c:\python352\lib\os.py

process finished with exit code 0

解釋:os.path.dirname(file)返回指令碼的路徑,但是需要注意一下幾點:

必須是實際存在的.py檔案,如果在命令列執行,則會引發異常nameerror: name 『file』 is not defined;

在執行的時候如果輸入完整的執行的路徑,則返回.py檔案的全路徑如:python c:/test/test.py 則返回路徑 c:/test ,如果是python test.py 則返回空;

結合os.path.abspath用,效果會好,如果大家看過一些python架構的**的話,會發現經常有這樣的組合:os.path.dirname(os.path.abspath(file)),os.path.abspath(file)返回的是.py檔案的絕對路徑。

這就是os.path.dirname(file)的用法,其主要總結起來有:

不要在命令列的形式來進行os.path.dirname(file)這種形式來使用這個函式;

結合os.path.abspath()使用

os模組關於路徑

os模組關於路徑的幾個主要方法 os.path 模組路徑訪問函式 os.path.basename 去掉目錄路徑,返回檔名 os.path.dirname 去掉檔名,返回目錄路徑 os.path.split 將路徑分為 dirname,basename 元組os.path.join 將目錄路徑和檔案...

os模組關於路徑

os模組關於路徑的幾個主要方法 os.path 模組路徑訪問函式 os.path.basename 去掉目錄路徑,返回檔名 os.path.dirname 去掉檔名,返回目錄路徑 os.path.split 將路徑分為 dirname,basename 元組 os.path.join 將目錄路徑和檔...

os路徑拼接

import os 該檔案路徑 project path os.path.realpath file print 該檔案的路徑是 format project path 獲取專案的根路徑 root path os.path.split os.path.split os.path.split proj...