电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Python pathlib模塊使用方法及實(shí)例解析

瀏覽:14日期:2022-07-09 10:10:49

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

圖 1 pathlib模塊中類的組織結(jié)構(gòu)

Python pathlib模塊使用方法及實(shí)例解析

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

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

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

注意,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í)行如下語句:

from pathlib import *# 創(chuàng)建PurePath,實(shí)際上使用PureWindowsPathpath = 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í)際上使用PureWindowsPathpath = PurePath(’http:’,’c.biancheng.net’,’python’)print(path)

程序執(zhí)行結(jié)果為:

http:c.biancheng.netpython

可以看到,由于本機(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)格的路徑字符串來說,可以判斷是否相等,也可以比較大?。▽?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é)果為:

FalseTrue

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

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

程序執(zhí)行結(jié)果為:

C:/my_file.txt

通過以上方式構(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)前路徑中沒有文件名,則會(huì)引發(fā) ValueError。 PurePath.with_suffix(suffix) 將當(dāng)前路徑中的文件后綴名替換成新的后綴名。如果當(dāng)前路徑中沒有后綴名,則會(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)行講解,感興趣的讀者可通過官方手冊(cè) https://docs.python.org/3/library/pathlib.html 進(jìn)行查閱。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 河南生物显微镜,全自动冰冻切片机-河南荣程联合科技有限公司 | 北京发电机出租_发电机租赁_北京发电机维修 - 河北腾伦发电机出租 | 工业淬火油烟净化器,北京油烟净化器厂家,热处理油烟净化器-北京众鑫百科 | 闸阀_截止阀_止回阀「生产厂家」-上海卡比阀门有限公司 | 开业庆典_舞龙舞狮_乔迁奠基仪式_开工仪式-神挚龙狮鼓乐文化传媒 | 玻璃钢格栅盖板|玻璃钢盖板|玻璃钢格栅板|树篦子-长沙川皖玻璃钢制品有限公司 | 行业分析:提及郑州火车站附近真有 特殊按摩 ?2025实地踩坑指南 新手如何避坑不踩雷 | PSI渗透压仪,TPS酸度计,美国CHAI PCR仪,渗透压仪厂家_价格,微生物快速检测仪-华泰和合(北京)商贸有限公司 | 北京四合院出租,北京四合院出售,北京平房买卖 - 顺益兴四合院 | 电机修理_二手电机专家-河北豫通机电设备有限公司(原石家庄冀华高压电机维修中心) | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 电子厂招聘_工厂招聘_普工招聘_小时工招聘信息平台-众立方招工网 | 首页-浙江橙树网络技术有限公司| 家乐事净水器官网-净水器厂家「官方」 | 硫化罐-电加热蒸汽硫化罐生产厂家-山东鑫泰鑫智能装备有限公司 | 上海盐水喷雾试验机_两厢式冷热冲击试验箱-巨怡环试 | 防火门|抗爆门|超大门|医疗门|隔声门-上海加汇门业生产厂家 | 哈希余氯测定仪,分光光度计,ph在线监测仪,浊度测定仪,试剂-上海京灿精密机械有限公司 | 低浓度恒温恒湿称量系统,强光光照培养箱-上海三腾仪器有限公司 | 特种电缆厂家-硅橡胶耐高温电缆-耐低温补偿导线-安徽万邦特种电缆有限公司 | 能耗监测系统-节能监测系统-能源管理系统-三水智能化 | 洗地机_全自动洗地机_手推式洗地机【上海滢皓环保】 | 金属检测机_金属分离器_检针验针机_食品药品金属检探测仪器-广东善安科技 | 合肥触摸一体机_触摸查询机厂家_合肥拼接屏-安徽迅博智能科技 | 恒温恒湿试验箱_高低温试验箱_恒温恒湿箱-东莞市高天试验设备有限公司 | 篮球地板厂家_舞台木地板品牌_体育运动地板厂家_凯洁地板 | TMT观察网_独特视角观察TMT行业 派财经_聚焦数字经济内容服务平台 | 服务器之家 - 专注于服务器技术及软件下载分享 | 强效碱性清洗剂-实验室中性清洗剂-食品级高纯氮气发生器-上海润榕科学器材有限公司 | 桂林腻子粉_内墙外墙抗裂砂浆腻子粉推荐广西鑫达涂料厂家供应 | 红酒招商加盟-葡萄酒加盟-进口红酒代理-青岛枞木酒业有限公司 | 数控专用机床,专用机床,自动线,组合机床,动力头,自动化加工生产线,江苏海鑫机床有限公司 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | MVE振动电机_MVE震动电机_MVE卧式振打电机-河南新乡德诚生产厂家 | 深圳美安可自动化设备有限公司,喷码机,定制喷码机,二维码喷码机,深圳喷码机,纸箱喷码机,东莞喷码机 UV喷码机,日期喷码机,鸡蛋喷码机,管芯喷码机,管内壁喷码机,喷码机厂家 | 山楂片_雪花_迷你山楂片_山楂条饼厂家-青州市丰源食品厂 | 紧急泄压人孔_防爆阻火器_阻火呼吸阀[河北宏泽石化] | 国际金融网_每日财经新资讯网 | 名律网-法律问题咨询-找律师-法律知识| 干粉砂浆设备_干混砂浆生产线_腻子粉加工设备_石膏抹灰砂浆生产成套设备厂家_干粉混合设备_砂子烘干机--郑州铭将机械设备有限公司 | 杭州营业执照代办-公司变更价格-许可证办理流程_杭州福道财务管理咨询有限公司 |