首頁 > 軟體

python 標準庫原理與用法詳解之os.path篇

2021-10-23 22:00:11

os中的path

檢視原始碼會看到,在os.py中有這樣幾行

if 'posix' in _names:
    name = 'posix'
    linesep = 'n'
    from posix import *
    #省略若干程式碼

elif 'nt' in _names:
    from nt import *
    try:
        from nt import _exit
        __all__.append('_exit')
    except ImportError:
        pass
    import ntpath as path
    #。。。

由於我們是在windows(WindowsNT)中,所以開啟ntpath.py檔案,可以看到開頭就定義了8個成員變數

curdir = '.'    #當前路徑標識
pardir = '..'   #
extsep = '.'    #擴充套件名分隔符
sep = '\'
pathsep = ';'   #環境變數中路徑的分隔符
altsep = '/'    #
defpath = '.;C:\bin'   #環境變數的存放位置
devnull = 'nul'

此外,還有一個名為supports_unicode_filenames的布林型成員變數,表示當前系統是否支援unicode的檔名。

可以理解為,path中封裝了一些和作業系統相關,並且在不同作業系統下程式碼不同的功能,下面預設from os.path import *

輸入為路徑字串的一元函式

輸出
normpath() 將路徑修改為\a\b形式
normcase() 將路徑修改為小寫的\a\b形式
abspath() 返回絕對路徑,其格式為X:\a\b
realpath() 返回絕對路徑,並消除其中的連結
relpath() 返回相對路徑,並消除其中的連結
split() 將輸入路徑分割為兩個部分
例如X:\a\b會返回為X:\ab
splitext() 分割檔案的擴充套件名
splidrive() 分割出驅動器和其他路徑
basename() 最下層的目錄或檔名稱,即split()[1]
dirname() 最下層目錄或檔案所在目錄,即split()[0]
exists() 判斷輸入路徑是否存在,存在則返回True,否則False
lexists() 如果路徑損壞,也返回False
isabs() 判斷輸入路徑是否為絕對路徑
isfile() 判斷輸入路徑是否為檔案
isdir() 判斷輸入路徑是否為目錄
islink() 判斷輸入路徑是否為連結
ismount() 判斷輸入路徑是否為掛載點(在windows中就是碟符)
例如os.path.ismount('C:\'),返回為True
expanduser() 通過~對路徑進行擴充套件
expandvars() 將路徑擴充套件為命令列識別的變數

部分範例

>>> from os.path import *
>>> p = abspath('.')
>>> p
'E:\Documents\00\1022'
>>> exists(p)
True
>>> splitdrive(p)
('E:', '\Documents\00\1022')
>>> isfile(p)
False

與檔案資訊相關的一元函式

其輸入必須為檔案路徑,不得為目錄

輸出~.getsize()以位元組為單位獲取檔案大小~.getctime()獲取檔案建立時間,c即create~.getmtime()獲取檔案最後修改時間,m即modify~.getatime()獲取檔案最後存取時間,a即access

輸出
~.getsize() 以位元組為單位獲取檔案大小
~.getctime() 獲取檔案建立時間,c即create
~.getmtime() 獲取檔案最後修改時間,m即modify
~.getatime() 獲取檔案最後存取時間,a即access

輸入為多個引數的函數

os.path.join,用於拼接路徑,超甜的一個功能。很多新手會為新建資料夾而困擾,很多時候不知道是寫D:test還是D:test,而在os.path.join中這兩者基本是等價的。

>>> os.path.join('test','\test1','test2\','test3')
'\test1\test2\test3'
判斷是否相同
~.samefile(p1, p2) 判斷目錄或檔案是否相同
~.sameopenfile(fp1, fp2) 兩個開啟的檔案是否指向同一個檔案

commonpath(list)commonprefix(list):返回list中所有path共有的最長路徑,即距離所有檔案和資料夾的共同父資料夾。二者區別在於,後者會在返回的路徑加上

到此這篇關於python 標準庫原理與用法詳解之os.path篇的文章就介紹到這了,更多相關python os.path內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!


IT145.com E-mail:sddin#qq.com