pathlib 模塊中包含的是一些類,它們的繼承關(guān)系如圖 1 所示。
目前創(chuàng)新互聯(lián)建站已為數(shù)千家的企業(yè)提供了網(wǎng)站建設(shè)、域名、網(wǎng)頁(yè)空間、網(wǎng)站托管運(yùn)營(yíng)、企業(yè)網(wǎng)站設(shè)計(jì)、大通網(wǎng)站維護(hù)等服務(wù),公司將堅(jiān)持客戶導(dǎo)向、應(yīng)用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長(zhǎng),共同發(fā)展。圖 1 pathlib模塊中類的組織結(jié)構(gòu)
圖 1 中,箭頭連接的是有繼承關(guān)系的兩個(gè)類,以 PurePosixPath 和 PurePath 類為例,PurePosizPath 繼承自 PurePath,即前者是后者的子類。
pathlib 模塊的操作對(duì)象是各種操作系統(tǒng)中使用的路徑(例如指定文件位置的路徑,包括絕對(duì)路徑和相對(duì)路徑)。這里簡(jiǎn)單介紹一下圖 1 中包含的幾個(gè)類的具體功能:
注意,UNIX 操作系統(tǒng)和 Windows 操作系統(tǒng)上,路徑的格式是完全不同的,主要區(qū)別在于根路徑和路徑分隔符,UNIX 系統(tǒng)的根路徑是斜杠(/),而 Windows 系統(tǒng)的根路徑是盤符(C:);UNIX 系統(tǒng)路徑使用的分隔符是斜杠(/),而 Windows 使用的是反斜杠(\)。
PurePath 類的用法
PurePath 類(以及 PurePosixPath 類和 PureWindowsPath 類)都提供了大量的構(gòu)造方法、實(shí)例方法以及類實(shí)例屬性,供我們使用。
PurePath類構(gòu)造方法
需要注意的是,在使用 PurePath 類時(shí),考慮到操作系統(tǒng)的不同,如果在 UNIX 或 Mac OS X 系統(tǒng)上使用 PurePath 創(chuàng)建對(duì)象,該類的構(gòu)造方法實(shí)際返回的是 PurePosixPath 對(duì)象;反之,如果在 Windows 系統(tǒng)上使用 PurePath 創(chuàng)建對(duì)象,該類的構(gòu)造方法返回的是 PureWindowsPath 對(duì)象。
當(dāng)然,我們完全可以直接使用 PurePosixPath 類或者 PureWindowsPath 類創(chuàng)建指定操作系統(tǒng)使用的類對(duì)象。
例如,在 Windows 系統(tǒng)上執(zhí)行如下語(yǔ)句:
from pathlib import *
# 創(chuàng)建PurePath,實(shí)際上使用PureWindowsPath
path = PurePath('my_file.txt')
print(type(path))
程序執(zhí)行結(jié)果為:
<class 'pathlib.PureWindowsPath'>
顯然,在 Windows 操作系統(tǒng)上,使用 PurePath 類構(gòu)造函數(shù)創(chuàng)建的是 PureWindowsPath 類對(duì)象。
讀者可自行嘗試在 UNIX 或者 Mac OS X 系統(tǒng)上執(zhí)行該程序。
除此之外,PurePath 在創(chuàng)建對(duì)象時(shí),也支持傳入多個(gè)路徑字符串,它們會(huì)被拼接成一個(gè)路徑格式的字符串。例如:
from pathlib import *
# 創(chuàng)建PurePath,實(shí)際上使用PureWindowsPath
path = PurePath('http:','c.biancheng.net','python')
print(path)
程序執(zhí)行結(jié)果為:
http:\c.biancheng.net\python
可以看到,由于本機(jī)為 Windows 系統(tǒng),因此這里輸出的是適用于 Windows 平臺(tái)的路徑。如果想在 Windows 系統(tǒng)上輸出 UNIX 風(fēng)格的路徑字符串,就需要使用 PurePosixPath 類。例如:
from pathlib import *
path = PurePosixPath('http:','c.biancheng.net','python')
print(path)
程序執(zhí)行結(jié)果為:
http:/c.biancheng.net/python
值的一提的是,如果在使用 PurePath 類構(gòu)造方法時(shí),不傳入任何參數(shù),則等同于傳入點(diǎn)‘.'(表示當(dāng)前路徑)作為參數(shù)。例如:
from pathlib import *
path = PurePath()
print(path)
path = PurePath('.')
print(path)
程序執(zhí)行結(jié)果為:
.
.
另外,如果傳入 PurePath 構(gòu)造方法中的多個(gè)參數(shù)中,包含多個(gè)根路徑,則只會(huì)有最后一個(gè)根路徑及后面的子路徑生效。例如:
from pathlib import *
path = PurePath('C://','D://','my_file.txt')
print(path)
程序執(zhí)行結(jié)果為:
D:\my_file.txt
注意,對(duì)于 Windows 風(fēng)格的路徑,只有盤符(如 C、D等)才能算根路徑。
需要注意的是,如果傳給 PurePath 構(gòu)造方法的參數(shù)中包含有多余的斜杠或者點(diǎn)( . ,表示當(dāng)前路徑),會(huì)直接被忽略( .. 不會(huì)被忽略)。舉個(gè)例子:
from pathlib import *
path = PurePath('C://./my_file.txt')
print(path)
程序執(zhí)行結(jié)果為:
C:\my_file.txt
PurePath 類還重載各種比較運(yùn)算符,多余同種風(fēng)格的路徑字符串來(lái)說(shuō),可以判斷是否相等,也可以比較大?。▽?shí)際上就是比較字符串的大?。粚?duì)于不同種風(fēng)格的路徑字符串之間,只能判斷是否相等(顯然,不可能相等),但不能比較大小。
舉個(gè)例子:
from pathlib import *
# Unix風(fēng)格的路徑區(qū)分大小寫
print(PurePosixPath('C://my_file.txt') == PurePosixPath('c://my_file.txt'))
# Windows風(fēng)格的路徑不區(qū)分大小寫
print(PureWindowsPath('C://my_file.txt') == PureWindowsPath('c://my_file.txt'))
程序執(zhí)行結(jié)果為:
False
True
比較特殊的是,PurePath 類對(duì)象支持直接使用斜杠(/)作為多個(gè)字符串之間的連接符,例如:
from pathlib import *
path = PurePosixPath('C://')
print(path / 'my_file.txt')
程序執(zhí)行結(jié)果為:
C:/my_file.txt
通過(guò)以上方式構(gòu)建的路徑,其本質(zhì)上就是字符串,因此我們完全可以使用 str() 將 PurePath 對(duì)象轉(zhuǎn)換成字符串。例如:
from pathlib import *
# Unix風(fēng)格的路徑區(qū)分大小寫
path = PurePosixPath('C://','my_file.txt')
print(str(path))
程序執(zhí)行結(jié)果為:
C:/my_file.txt
PurePath類實(shí)例屬性和實(shí)例方法
表 1 中羅列出了常用的以下 PurePath 類實(shí)例方法和屬性。由于從本質(zhì)上講,PurePath 的操作對(duì)象是字符串,因此表 1 中的這些實(shí)例屬性和實(shí)例方法,實(shí)質(zhì)也是對(duì)字符串進(jìn)行操作。
表 1 PurePath 類屬性和方法
類實(shí)例屬性和實(shí)例方法名 | 功能描述 |
---|---|
PurePath.parts | 返回路徑字符串中所包含的各部分。 |
PurePath.drive | 返回路徑字符串中的驅(qū)動(dòng)器盤符。 |
PurePath.root | 返回路徑字符串中的根路徑。 |
PurePath.anchor | 返回路徑字符串中的盤符和根路徑。 |
PurePath.parents | 返回當(dāng)前路徑的全部父路徑。 |
PurPath.parent | 返回當(dāng)前路徑的上一級(jí)路徑,相當(dāng)于 parents[0] 的返回值。 |
PurePath.name | 返回當(dāng)前路徑中的文件名。 |
PurePath.suffixes | 返回當(dāng)前路徑中的文件所有后綴名。 |
PurePath.suffix | 返回當(dāng)前路徑中的文件后綴名。相當(dāng)于 suffixes 屬性返回的列表的最后一個(gè)元素。 |
PurePath.stem | 返回當(dāng)前路徑中的主文件名。 |
PurePath.as_posix() | 將當(dāng)前路徑轉(zhuǎn)換成 UNIX 風(fēng)格的路徑。 |
PurePath.as_uri() | 將當(dāng)前路徑轉(zhuǎn)換成 URL。只有絕對(duì)路徑才能轉(zhuǎn)換,否則將會(huì)引發(fā) ValueError。 |
PurePath.is_absolute() | 判斷當(dāng)前路徑是否為絕對(duì)路徑。 |
PurePath.joinpath(*other) | 將多個(gè)路徑連接在一起,作用類似于前面介紹的斜杠(/)連接符。 |
PurePath.match(pattern) | 判斷當(dāng)前路徑是否匹配指定通配符。 |
PurePath.relative_to(*other) | 獲取當(dāng)前路徑中去除基準(zhǔn)路徑之后的結(jié)果。 |
PurePath.with_name(name) | 將當(dāng)前路徑中的文件名替換成新文件名。如果當(dāng)前路徑中沒(méi)有文件名,則會(huì)引發(fā) ValueError。 |
PurePath.with_suffix(suffix) | 將當(dāng)前路徑中的文件后綴名替換成新的后綴名。如果當(dāng)前路徑中沒(méi)有后綴名,則會(huì)添加新的后綴名。 |
對(duì)于表 1 中的這些實(shí)例屬性和實(shí)例方法的用法,這里不再舉例演示,有興趣的讀者可自行嘗試它們的功能。
Path類的功能和用法
和 PurPath 類相比,Path 類的大不同,就是支持對(duì)路徑的真實(shí)性進(jìn)行判斷。
從圖 1 可以輕易看出,Path 是 PurePath 的子類,因此 Path 類除了支持 PurePath 提供的各種構(gòu)造函數(shù)、實(shí)例屬性以及實(shí)例方法之外,還提供甄別路徑字符串有效性的方法,甚至還可以判斷該路徑對(duì)應(yīng)的是文件還是文件夾,如果是文件,還支持對(duì)文件進(jìn)行讀寫等操作。
和 PurePath 一樣,Path 同樣有 2 個(gè)子類,分別為 PosixPath(表示 UNIX 風(fēng)格的路徑)和 WindowsPath(表示 Windows 風(fēng)格的路徑)。
由于文章篇幅有限,Path 類屬性和方法眾多,因此這里不再一一進(jìn)行講解,感興趣的讀者可通過(guò)官方手冊(cè) https://docs.python.org/3/library/pathlib.html 進(jìn)行查閱。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
新聞標(biāo)題:Pythonpathlib模塊使用方法及實(shí)例解析-創(chuàng)新互聯(lián)
網(wǎng)站路徑:http://jinyejixie.com/article18/csojdp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供云服務(wù)器、商城網(wǎng)站、面包屑導(dǎo)航、網(wǎng)站制作、網(wǎng)站建設(shè)、用戶體驗(yàn)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容