91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python pathlib模塊使用方法及實例解析

發布時間:2020-10-06 22:49:20 來源:腳本之家 閱讀:160 作者:lincappu 欄目:開發技術

pathlib 模塊中包含的是一些類,它們的繼承關系如圖 1 所示。

圖 1 pathlib模塊中類的組織結構

Python pathlib模塊使用方法及實例解析

圖 1 中,箭頭連接的是有繼承關系的兩個類,以 PurePosixPath 和 PurePath 類為例,PurePosizPath 繼承自 PurePath,即前者是后者的子類。

pathlib 模塊的操作對象是各種操作系統中使用的路徑(例如指定文件位置的路徑,包括絕對路徑和相對路徑)。這里簡單介紹一下圖 1 中包含的幾個類的具體功能:

  • PurePath 類會將路徑看做是一個普通的字符串,它可以實現將多個指定的字符串拼接成適用于當前操作系統的路徑格式,同時還可以判斷任意兩個路徑是否相等。注意,使用 PurePath 操作的路徑,它并不會關心該路徑是否真實有效。
  • PurePosixPath 和 PureWindowsPath 是 PurePath 的子類,前者用于操作 UNIX(包括 Mac OS X)風格的路徑,后者用于操作 Windows 風格的路徑。
  • Path 類和以上 3 個類不同,它操作的路徑一定是真實有效的。Path 類提供了判斷路徑是否真實存在的方法。
  • PosixPath 和 WindowPath 是 Path 的子類,分別用于操作 Unix(Mac OS X)風格的路徑和 Windows 風格的路徑。

注意,UNIX 操作系統和 Windows 操作系統上,路徑的格式是完全不同的,主要區別在于根路徑和路徑分隔符,UNIX 系統的根路徑是斜杠(/),而 Windows 系統的根路徑是盤符(C:);UNIX 系統路徑使用的分隔符是斜杠(/),而 Windows 使用的是反斜杠(\)。

PurePath 類的用法

PurePath 類(以及 PurePosixPath 類和 PureWindowsPath 類)都提供了大量的構造方法、實例方法以及類實例屬性,供我們使用。

PurePath類構造方法

需要注意的是,在使用 PurePath 類時,考慮到操作系統的不同,如果在 UNIX 或 Mac OS X 系統上使用 PurePath 創建對象,該類的構造方法實際返回的是 PurePosixPath 對象;反之,如果在 Windows 系統上使用 PurePath 創建對象,該類的構造方法返回的是 PureWindowsPath 對象。

當然,我們完全可以直接使用 PurePosixPath 類或者 PureWindowsPath 類創建指定操作系統使用的類對象。

例如,在 Windows 系統上執行如下語句:

from pathlib import *
# 創建PurePath,實際上使用PureWindowsPath
path = PurePath('my_file.txt')
print(type(path))

程序執行結果為:

<class 'pathlib.PureWindowsPath'>

顯然,在 Windows 操作系統上,使用 PurePath 類構造函數創建的是 PureWindowsPath 類對象。

讀者可自行嘗試在 UNIX 或者 Mac OS X 系統上執行該程序。

除此之外,PurePath 在創建對象時,也支持傳入多個路徑字符串,它們會被拼接成一個路徑格式的字符串。例如:

from pathlib import *
# 創建PurePath,實際上使用PureWindowsPath
path = PurePath('http:','c.biancheng.net','python')
print(path)

程序執行結果為:

http:\c.biancheng.net\python

可以看到,由于本機為 Windows 系統,因此這里輸出的是適用于 Windows 平臺的路徑。如果想在 Windows 系統上輸出 UNIX 風格的路徑字符串,就需要使用 PurePosixPath 類。例如:

from pathlib import *
path = PurePosixPath('http:','c.biancheng.net','python')
print(path)

程序執行結果為:

http:/c.biancheng.net/python

值的一提的是,如果在使用 PurePath 類構造方法時,不傳入任何參數,則等同于傳入點‘.'(表示當前路徑)作為參數。例如:

from pathlib import *
path = PurePath()
print(path)
path = PurePath('.')
print(path)

程序執行結果為:

.
.

另外,如果傳入 PurePath 構造方法中的多個參數中,包含多個根路徑,則只會有最后一個根路徑及后面的子路徑生效。例如:

from pathlib import *
path = PurePath('C://','D://','my_file.txt')
print(path)

程序執行結果為:

D:\my_file.txt

注意,對于 Windows 風格的路徑,只有盤符(如 C、D等)才能算根路徑。

需要注意的是,如果傳給 PurePath 構造方法的參數中包含有多余的斜杠或者點( . ,表示當前路徑),會直接被忽略( .. 不會被忽略)。舉個例子:

from pathlib import *
path = PurePath('C://./my_file.txt')
print(path)

程序執行結果為:

C:\my_file.txt

PurePath 類還重載各種比較運算符,多余同種風格的路徑字符串來說,可以判斷是否相等,也可以比較大小(實際上就是比較字符串的大小);對于不同種風格的路徑字符串之間,只能判斷是否相等(顯然,不可能相等),但不能比較大小。

舉個例子:

from pathlib import *
# Unix風格的路徑區分大小寫
print(PurePosixPath('C://my_file.txt') == PurePosixPath('c://my_file.txt'))
# Windows風格的路徑不區分大小寫
print(PureWindowsPath('C://my_file.txt') == PureWindowsPath('c://my_file.txt'))

程序執行結果為:

False
True

比較特殊的是,PurePath 類對象支持直接使用斜杠(/)作為多個字符串之間的連接符,例如:

from pathlib import *
path = PurePosixPath('C://')
print(path / 'my_file.txt')

程序執行結果為:

C:/my_file.txt

通過以上方式構建的路徑,其本質上就是字符串,因此我們完全可以使用 str() 將 PurePath 對象轉換成字符串。例如:

from pathlib import *
# Unix風格的路徑區分大小寫
path = PurePosixPath('C://','my_file.txt')
print(str(path))

程序執行結果為:

C:/my_file.txt

PurePath類實例屬性和實例方法

表 1 中羅列出了常用的以下 PurePath 類實例方法和屬性。由于從本質上講,PurePath 的操作對象是字符串,因此表 1 中的這些實例屬性和實例方法,實質也是對字符串進行操作。

表 1 PurePath 類屬性和方法

類實例屬性和實例方法名 功能描述
PurePath.parts 返回路徑字符串中所包含的各部分。
PurePath.drive 返回路徑字符串中的驅動器盤符。
PurePath.root 返回路徑字符串中的根路徑。
PurePath.anchor 返回路徑字符串中的盤符和根路徑。
PurePath.parents 返回當前路徑的全部父路徑。
PurPath.parent 返回當前路徑的上一級路徑,相當于 parents[0] 的返回值。
PurePath.name 返回當前路徑中的文件名。
PurePath.suffixes 返回當前路徑中的文件所有后綴名。
PurePath.suffix 返回當前路徑中的文件后綴名。相當于 suffixes 屬性返回的列表的最后一個元素。
PurePath.stem 返回當前路徑中的主文件名。
PurePath.as_posix() 將當前路徑轉換成 UNIX 風格的路徑。
PurePath.as_uri() 將當前路徑轉換成 URL。只有絕對路徑才能轉換,否則將會引發 ValueError。
PurePath.is_absolute() 判斷當前路徑是否為絕對路徑。
PurePath.joinpath(*other) 將多個路徑連接在一起,作用類似于前面介紹的斜杠(/)連接符。
PurePath.match(pattern) 判斷當前路徑是否匹配指定通配符。
PurePath.relative_to(*other) 獲取當前路徑中去除基準路徑之后的結果。
PurePath.with_name(name) 將當前路徑中的文件名替換成新文件名。如果當前路徑中沒有文件名,則會引發 ValueError。
PurePath.with_suffix(suffix) 將當前路徑中的文件后綴名替換成新的后綴名。如果當前路徑中沒有后綴名,則會添加新的后綴名。

對于表 1 中的這些實例屬性和實例方法的用法,這里不再舉例演示,有興趣的讀者可自行嘗試它們的功能。

Path類的功能和用法

和 PurPath 類相比,Path 類的最大不同,就是支持對路徑的真實性進行判斷。

從圖 1 可以輕易看出,Path 是 PurePath 的子類,因此 Path 類除了支持 PurePath 提供的各種構造函數、實例屬性以及實例方法之外,還提供甄別路徑字符串有效性的方法,甚至還可以判斷該路徑對應的是文件還是文件夾,如果是文件,還支持對文件進行讀寫等操作。

和 PurePath 一樣,Path 同樣有 2 個子類,分別為 PosixPath(表示 UNIX 風格的路徑)和 WindowsPath(表示 Windows 風格的路徑)。

由于文章篇幅有限,Path 類屬性和方法眾多,因此這里不再一一進行講解,感興趣的讀者可通過官方手冊  https://docs.python.org/3/library/pathlib.html 進行查閱。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁阳县| 澄江县| 青神县| 甘南县| 淄博市| 泰宁县| 武穴市| 章丘市| 抚顺县| 临潭县| 镇沅| 习水县| 鹤峰县| 鹤壁市| 藁城市| 南木林县| 大竹县| 彰武县| 禹城市| 定边县| 承德市| 宿松县| 长沙县| 泸定县| 曲靖市| 田东县| 新乐市| 石景山区| 霸州市| 定州市| 大名县| 通榆县| 湘乡市| 岳阳市| 宣城市| 建德市| 洪雅县| 桓台县| 石楼县| 民县| 蒙山县|