python 標(biāo)準(zhǔn)庫原理與用法詳解之os.path篇
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 = '.' #當(dāng)前路徑標(biāo)識 pardir = '..'# extsep = '.' #擴(kuò)展名分隔符 sep = '\\' pathsep = ';'#環(huán)境變量中路徑的分隔符 altsep = '/' # defpath = '.;C:\\bin'#環(huán)境變量的存放位置 devnull = 'nul'
此外,還有一個名為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() |
將路徑修改為小寫的\\a\\b形式 |
abspath() |
返回絕對路徑,其格式為X:\\a\\b |
realpath() |
返回絕對路徑,并消除其中的鏈接 |
relpath() |
返回相對路徑,并消除其中的鏈接 |
split() |
將輸入路徑分割為兩個部分 例如 X:\\a\\b會返回為X:\\a和b |
splitext() |
分割文件的擴(kuò)展名 |
splidrive() |
分割出驅(qū)動器和其他路徑 |
basename() |
最下層的目錄或文件名稱,即split()[1] |
dirname() |
最下層目錄或文件所在目錄,即split()[0] |
exists() |
判斷輸入路徑是否存在,存在則返回True,否則False |
lexists() |
如果路徑損壞,也返回False |
isabs() |
判斷輸入路徑是否為絕對路徑 |
isfile() |
判斷輸入路徑是否為文件 |
isdir() |
判斷輸入路徑是否為目錄 |
islink() |
判斷輸入路徑是否為鏈接 |
ismount() |
判斷輸入路徑是否為掛載點(在windows中就是盤符) 例如 os.path.ismount('C:\\'),返回為True |
expanduser() |
通過~對路徑進(jìn)行擴(kuò)展 |
expandvars() |
將路徑擴(kuò)展為命令行識別的變量 |
部分示例
>>> 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)建時間,c即create~.getmtime()獲取文件最后修改時間,m即modify~.getatime()獲取文件最后訪問時間,a即access
| 輸出 | |
|---|---|
~.getsize() |
以字節(jié)為單位獲取文件大小 |
~.getctime() |
獲取文件創(chuàng)建時間,c即create |
~.getmtime() |
獲取文件最后修改時間,m即modify |
~.getatime() |
獲取文件最后訪問時間,a即access |
輸入為多個參數(shù)的函數(shù)
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共有的最長路徑,即距離所有文件和文件夾的共同父文件夾。二者區(qū)別在于,后者會在返回的路徑加上\。
到此這篇關(guān)于python 標(biāo)準(zhǔn)庫原理與用法詳解之os.path篇的文章就介紹到這了,更多相關(guān)python os.path內(nèi)容請搜索本站以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持本站!
版權(quán)聲明:本站文章來源標(biāo)注為YINGSOO的內(nèi)容版權(quán)均為本站所有,歡迎引用、轉(zhuǎn)載,請保持原文完整并注明來源及原文鏈接。禁止復(fù)制或仿造本網(wǎng)站,禁止在非maisonbaluchon.cn所屬的服務(wù)器上建立鏡像,否則將依法追究法律責(zé)任。本站部分內(nèi)容來源于網(wǎng)友推薦、互聯(lián)網(wǎng)收集整理而來,僅供學(xué)習(xí)參考,不代表本站立場,如有內(nèi)容涉嫌侵權(quán),請聯(lián)系alex-e#qq.com處理。
關(guān)注官方微信