溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

python標(biāo)準(zhǔn)庫(kù)原理與用法詳解之如何使用os.path

發(fā)布時(shí)間:2021-10-25 13:12:06 來(lái)源:億速云 閱讀:266 作者:iii 欄目:開(kāi)發(fā)技術(shù)

這篇文章主要講解了“python標(biāo)準(zhǔn)庫(kù)原理與用法詳解之如何使用os.path”,文中的講解內(nèi)容簡(jiǎn)單清晰,易于學(xué)習(xí)與理解,下面請(qǐng)大家跟著小編的思路慢慢深入,一起來(lái)研究和學(xué)習(xí)“python標(biāo)準(zhǔn)庫(kù)原理與用法詳解之如何使用os.path”吧!

os中的path

查看源碼會(huì)看到,在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)中,所以打開(kāi)ntpath.py文件,可以看到開(kāi)頭就定義了8個(gè)成員變量

curdir = '.'    #當(dāng)前路徑標(biāo)識(shí)
pardir = '..'   #
extsep = '.'    #擴(kuò)展名分隔符
sep = '\\'
pathsep = ';'   #環(huán)境變量中路徑的分隔符
altsep = '/'    #
defpath = '.;C:\\bin'   #環(huán)境變量的存放位置
devnull = 'nul'

此外,還有一個(gè)名為supports_unicode_filenames的布爾型成員變量,表示當(dāng)前系統(tǒng)是否支持unicode的文件名。

可以理解為,path中封裝了一些和操作系統(tǒng)相關(guān),并且在不同操作系統(tǒng)下代碼不同的功能,下面默認(rèn)from os.path import *

輸入為路徑字符串的單參函數(shù)


輸出
normpath()將路徑修改為\\a\\b形式
normcase()將路徑修改為小寫(xiě)的\\a\\b形式
abspath()返回絕對(duì)路徑,其格式為X:\\a\\b
realpath()返回絕對(duì)路徑,并消除其中的鏈接
relpath()返回相對(duì)路徑,并消除其中的鏈接
split()將輸入路徑分割為兩個(gè)部分
例如X:\\a\\b會(huì)返回為X:\\ab
splitext()分割文件的擴(kuò)展名
splidrive()分割出驅(qū)動(dòng)器和其他路徑
basename()最下層的目錄或文件名稱(chēng),即split()[1]
dirname()最下層目錄或文件所在目錄,即split()[0]
exists()判斷輸入路徑是否存在,存在則返回True,否則False
lexists()如果路徑損壞,也返回False
isabs()判斷輸入路徑是否為絕對(duì)路徑
isfile()判斷輸入路徑是否為文件
isdir()判斷輸入路徑是否為目錄
islink()判斷輸入路徑是否為鏈接
ismount()判斷輸入路徑是否為掛載點(diǎn)(在windows中就是盤(pán)符)
例如os.path.ismount('C:\\'),返回為T(mén)rue
expanduser()通過(guò)~對(duì)路徑進(jìn)行擴(kuò)展
expandvars()將路徑擴(kuò)展為命令行識(shí)別的變量

部分示例

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

與文件信息相關(guān)的單參函數(shù)

其輸入必須為文件路徑,不得為目錄

輸出~.getsize()以字節(jié)為單位獲取文件大小~.getctime()獲取文件創(chuàng)建時(shí)間,c即create~.getmtime()獲取文件最后修改時(shí)間,m即modify~.getatime()獲取文件最后訪問(wèn)時(shí)間,a即access




輸出
~.getsize()以字節(jié)為單位獲取文件大小
~.getctime()獲取文件創(chuàng)建時(shí)間,c即create
~.getmtime()獲取文件最后修改時(shí)間,m即modify
~.getatime()獲取文件最后訪問(wèn)時(shí)間,a即access

輸入為多個(gè)參數(shù)的函數(shù)

os.path.join,用于拼接路徑,超甜的一個(gè)功能。很多新手會(huì)為新建文件夾而困擾,很多時(shí)候不知道是寫(xiě)D:\test還是D:\test\,而在os.path.join中這兩者基本是等價(jià)的。

>>> os.path.join('test','\\test1','test2\\','test3')
'\\test1\\test2\\test3'

判斷是否相同
~.samefile(p1, p2)判斷目錄或文件是否相同
~.sameopenfile(fp1, fp2)兩個(gè)打開(kāi)的文件是否指向同一個(gè)文件

commonpath(list),commonprefix(list):返回list中所有path共有的最長(zhǎng)路徑,即距離所有文件和文件夾的共同父文件夾。二者區(qū)別在于,后者會(huì)在返回的路徑加上\

感謝各位的閱讀,以上就是“python標(biāo)準(zhǔn)庫(kù)原理與用法詳解之如何使用os.path”的內(nèi)容了,經(jīng)過(guò)本文的學(xué)習(xí)后,相信大家對(duì)python標(biāo)準(zhǔn)庫(kù)原理與用法詳解之如何使用os.path這一問(wèn)題有了更深刻的體會(huì),具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是億速云,小編將為大家推送更多相關(guān)知識(shí)點(diǎn)的文章,歡迎關(guān)注!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI