您好,登錄后才能下訂單哦!
這篇文章主要講解了“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”吧!
查看源碼會(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 *
。
輸出 | |
---|---|
normpath() | 將路徑修改為\\a\\b 形式 |
normcase() | 將路徑修改為小寫(xiě)的\\a\\b 形式 |
abspath() | 返回絕對(duì)路徑,其格式為X:\\a\\b |
realpath() | 返回絕對(duì)路徑,并消除其中的鏈接 |
relpath() | 返回相對(duì)路徑,并消除其中的鏈接 |
split() | 將輸入路徑分割為兩個(gè)部分 例如 X:\\a\\b 會(huì)返回為X:\\a 和b |
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
其輸入必須為文件路徑,不得為目錄
輸出~.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 |
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)注!
免責(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)容。