最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python文件系統(tǒng)模塊pathlib庫(kù)

 更新時(shí)間:2022年05月28日 11:54:45   作者:springsnow  
這篇文章介紹了Python中的文件系統(tǒng)模塊pathlib庫(kù),文中通過(guò)示例代碼介紹的非常詳細(xì)。對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

一、pathlib庫(kù)官方定義

pathlib 是Python內(nèi)置庫(kù),Python 文檔給它的定義是 Object-oriented filesystem paths(面向?qū)ο蟮奈募到y(tǒng)路徑)。pathlib 提供表示文件系統(tǒng)路徑的類(lèi),其語(yǔ)義適用于不同的操作系統(tǒng)。

路徑類(lèi)在純路徑之間劃分,純路徑提供純粹的計(jì)算操作而沒(méi)有 I / O,以及具體路徑,它繼承純路徑但也提供 I / O 操作。

二、pathlib秘籍

1、 基本用法

  • Path.iterdir() # 遍歷目錄的子目錄或者文件
  • Path.is_dir() # 判斷是否是目錄
  • Path.glob() # 過(guò)濾目錄(返回生成器)
  • Path.resolve() # 返回絕對(duì)路徑
  • Path.exists() # 判斷路徑是否存在
  • Path.open() # 打開(kāi)文件(支持with)
  • Path.unlink() # 刪除文件或目錄(目錄非空觸發(fā)異常) 

2、 基本屬性

  • Path.parts # 分割路徑 類(lèi)似os.path.split(), 不過(guò)返回元組
  • Path.drive # 返回驅(qū)動(dòng)器名稱(chēng)
  • Path.root # 返回路徑的根目錄
  • Path.anchor # 自動(dòng)判斷返回drive或root
  • Path.parents # 返回所有上級(jí)目錄的列表

3、 改變路徑

  • Path.with_name() # 更改路徑名稱(chēng), 更改最后一級(jí)路徑名
  • Path.with_suffix() # 更改路徑后綴

4、 拼接路徑

  • Path.joinpath() # 拼接路徑
  • Path.relative_to() # 計(jì)算相對(duì)路徑

5、 測(cè)試路徑

  • Path.match() # 測(cè)試路徑是否符合pattern
  • Path.is_dir() # 是否是文件
  • Path.is_absolute() # 是否是絕對(duì)路徑
  • Path.is_reserved() # 是否是預(yù)留路徑
  • Path.exists() # 判斷路徑是否真實(shí)存在

6、 其他方法

  • Path.cwd() # 返回當(dāng)前目錄的路徑對(duì)象
  • Path.home() # 返回當(dāng)前用戶(hù)的home路徑對(duì)象
  • Path.stat() # 返回路徑信息, 同os.stat()
  • Path.chmod() # 更改路徑權(quán)限, 類(lèi)似os.chmod()
  • Path.expanduser() # 展開(kāi)~返回完整路徑對(duì)象
  • Path.mkdir() # 創(chuàng)建目錄
  • Path.rename() # 重命名路徑
  • Path.rglob() # 遞歸遍歷所有子目錄的文件

三、os和pathlib.Path的區(qū)別

相對(duì)于 os 模塊的 path 方法,Python3 標(biāo)準(zhǔn)庫(kù) pathlib 模塊的 Path 對(duì)路徑的操作會(huì)更簡(jiǎn)單。

1、 獲取當(dāng)前文件路徑

使用 os 模塊時(shí),通過(guò) getcwd() 方法可以直接獲取當(dāng)前文件路徑

在 Pycharm 中,可以使用 os.path.dirname(__file__) 獲取當(dāng)前文件路徑,因?yàn)?Python 并沒(méi)有提供 __file__ 這個(gè)概念,他是 Pycharm 提供的:

import os

print(os.getcwd())  # C:\Users\bobin.yang\PycharmProjects\untitled
print(os.path.dirname(__file__))  # C:/Users/bobin.yang/PycharmProjects/untitled

在 pathlib 模塊中,通過(guò) Path.cwd() 方法可以直接獲取當(dāng)前文件路徑,我們可以動(dòng)手試一試:

import pathlib

print(pathlib.Path.cwd())  # C:\Users\bobin.yang\PycharmProjects\untitled

通過(guò) Pycharm 我們可以使用快捷鍵 ctrl+鼠標(biāo)左鍵 點(diǎn)擊查看該方法的詳細(xì)介紹。

從上圖中可以看出 cwd() 方法不過(guò)是對(duì) os 庫(kù)中 getcwd() 方法進(jìn)行了封裝,看起來(lái)好像更差勁了,但是官方的推出一定不是子虛烏有的,現(xiàn)在讓我們一起來(lái)揭秘。

2、 獲取上層/上層目錄

上面那個(gè)案例仿佛讓 pashlib 庫(kù)的使用變得更加復(fù)雜了,為了揭秘,我們只能一同感受下 pathlib 庫(kù)的構(gòu)成,了解 pathlib 庫(kù)如何帶給我們便捷。

在 os 模塊中,如果我們要獲取某一個(gè)文件的父目錄,os 模塊的寫(xiě)法為:

import os

print(os.path.dirname(os.path.dirname(os.getcwd())))  # C:\PycharmProjects

在 pathlib 庫(kù)中,可以通過(guò)這樣簡(jiǎn)潔方法實(shí)現(xiàn):

import pathlib

print(pathlib.Path.cwd().parent)   # C:\PycharmProjects

并且,如果你需要找他爺爺,是不是再來(lái)一個(gè) .parent 就行了。相比較 os 模塊的 os.path.dirname() 是不是方便太多太多了?

3、 路徑拼接

如果你要在他父目錄中拼接路徑,通過(guò) os 模塊你可能需要寫(xiě)這么一長(zhǎng)串代碼:

import os

print(os.path.join(os.path.dirname(os.getcwd()), '路徑拼接', '真麻煩'))  # C:\PycharmProjects\路徑拼接\真麻煩

當(dāng)你使用 pathlib 的時(shí)候,我們一起來(lái)感受他的便捷之處吧!

# /Users/mac/test.py
import os

paths = ('路徑拼接', '真麻煩')
print(pathlib.Path.cwd().parent.joinpath(*paths))  # C:\PycharmProjects\路徑拼接\真麻煩

通過(guò) pathlib 庫(kù)拼接路徑,你可以很方便的調(diào)節(jié)他在他祖輩的位置,妙哉。

4、 其他封裝

pathlib 封裝了很多的 os.path 中的方法,如下所示:

  • os.path.expanduser() --> pathlib.Path.home()
  • os.path.expanduser() --> pathlib.Path.expanduser()
  • os.stat() --> pathlib.Path.stat()
  • os.chmod() --> pathlib.Path.chmod()

四、pathlib.PurePath的使用

上一節(jié)的操作大部分都是通過(guò) pathlib 庫(kù)中的 Path 實(shí)現(xiàn),其實(shí)他還有一個(gè)更加高大上的模塊,也就是我們這一節(jié)的主角:pathlib.PurePath

PurePath 是一個(gè)純路徑對(duì)象,純路徑對(duì)象提供了實(shí)際上不訪(fǎng)問(wèn)文件系統(tǒng)的路徑處理操作。

有三種方法可以訪(fǎng)問(wèn)這些類(lèi),我們也稱(chēng)之為 flavor 。

1、 PurePath.match

下面讓我們來(lái)實(shí)現(xiàn)一個(gè)神奇的功能,判斷當(dāng)前的路徑下是否有符合'*.py'規(guī)則的文件。

import pathlib

print(pathlib.PurePath(__file__).match('*.py'))  # True

輸出為什么會(huì)是 True 呢?因?yàn)楫?dāng)前文件夾下不就有一個(gè) test.py 嗎?

2、 PurePath的子類(lèi):PurePosixPath(非Windows系統(tǒng))、PureWindowsPath

看見(jiàn) pathlib.PurePath 后面跟著 match,那是不是能說(shuō)明他是個(gè)對(duì)象,而不是一個(gè)單純的路徑字符串,因此我們可以試著打印 pathlib.PurePath 看一看。

import pathlib

os_path = os.path.dirname(__file__)
print(os_path)  # C:/PycharmProjects/untitled

pure_path = pathlib.PurePath(__file__)
print(pure_path)  # C:\PycharmProjects\untitled\run.py
print(type(pure_path))  # <class 'pathlib.PureWindowsPath'>


print(pathlib.PurePath(__file__).match('*.py'))  # True

通過(guò)打印 os.path 獲取當(dāng)前路徑的結(jié)果,得到一個(gè)路徑字符串;而通過(guò) pathlib.PurePath 則獲得了一個(gè) PurePosixPath 對(duì)象,并且由此得到的路徑包括了當(dāng)前文件 run.py。

到此這篇關(guān)于Python文件系統(tǒng)模塊pathlib庫(kù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • python中pika模塊問(wèn)題的深入探究

    python中pika模塊問(wèn)題的深入探究

    這篇文章主要給大家介紹了關(guān)于python中pika模塊問(wèn)題的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用python具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-10-10
  • Python docx庫(kù)代碼演示

    Python docx庫(kù)代碼演示

    這篇文章主要介紹了Python docx庫(kù)用法,結(jié)合實(shí)例形式分析了docx庫(kù)相關(guān)的docx文件讀取、文本添加、格式操作,需要的朋友可以參考下
    2021-10-10
  • Python實(shí)戰(zhàn)之IQ測(cè)試系統(tǒng)的實(shí)現(xiàn)

    Python實(shí)戰(zhàn)之IQ測(cè)試系統(tǒng)的實(shí)現(xiàn)

    通常,智商測(cè)試測(cè)驗(yàn)一個(gè)人在數(shù)字、空間、邏輯、詞匯、創(chuàng)造、記憶等方面的能力。本文將利用Python實(shí)現(xiàn)一個(gè)IQ測(cè)試系統(tǒng),感興趣的可以了解一下
    2022-09-09
  • Python讀取Excel繪制直方圖的方法

    Python讀取Excel繪制直方圖的方法

    這篇文章主要介紹了Python讀取Excel繪制直方圖,以下將詳細(xì)介紹如何使用 Python 的?pyecharts、matplotlib?和?seaborn?三個(gè)庫(kù)從 Excel 中讀取數(shù)據(jù)并繪制直方圖(Histogram),需要的朋友可以參考下
    2025-04-04
  • python列表嵌套引發(fā)的問(wèn)題總結(jié)

    python列表嵌套引發(fā)的問(wèn)題總結(jié)

    這篇文章主要介紹了python列表嵌套引發(fā)的問(wèn)題總結(jié),下面問(wèn)文章引發(fā)問(wèn)題來(lái)自日常工作總結(jié),具有一定的參考價(jià)值需要的小伙伴可以參考一下
    2022-05-05
  • python光學(xué)仿真實(shí)現(xiàn)光線(xiàn)追跡折射與反射的實(shí)現(xiàn)

    python光學(xué)仿真實(shí)現(xiàn)光線(xiàn)追跡折射與反射的實(shí)現(xiàn)

    這篇文章主要為大家介紹了python光學(xué)仿真實(shí)現(xiàn)光線(xiàn)追跡折射與反射的實(shí)現(xiàn)示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步
    2021-10-10
  • tensorflow 獲取所有variable或tensor的name示例

    tensorflow 獲取所有variable或tensor的name示例

    今天小編就為大家分享一篇tensorflow 獲取所有variable或tensor的name示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-01-01
  • Python一站式進(jìn)行提取文檔內(nèi)容(Word、Excel、PDF 和PPT)

    Python一站式進(jìn)行提取文檔內(nèi)容(Word、Excel、PDF 和PPT)

    這篇文章主要為大家詳細(xì)介紹了Python如何實(shí)現(xiàn)一站式提取文檔內(nèi)容,例如Word、Excel、PDF 和PPT,文中的示例代碼講解詳細(xì),有需要的小伙伴可以了解下
    2025-09-09
  • python人工智能tensorflow函數(shù)tf.nn.dropout使用方法

    python人工智能tensorflow函數(shù)tf.nn.dropout使用方法

    這篇文章主要為大家介紹了python人工智能tensorflow函數(shù)tf.nn.dropout使用示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • 詳解Django框架中的視圖級(jí)緩存

    詳解Django框架中的視圖級(jí)緩存

    這篇文章主要介紹了詳解Django框架中的視圖級(jí)緩存,Django是最具人氣的Python web開(kāi)發(fā)框架,需要的朋友可以參考下
    2015-07-07

最新評(píng)論

禹城市| 长治县| 青铜峡市| 石台县| 铅山县| 锦屏县| 肇庆市| 通化市| 万州区| 右玉县| 桂阳县| 彰化县| 张家界市| 澜沧| 桑日县| 南开区| 无极县| 正蓝旗| 河津市| 苍南县| 庄河市| 延庆县| 城固县| 噶尔县| 新丰县| 丽水市| 巴林左旗| 靖边县| 鲁甸县| 金川县| 偃师市| 文成县| 鹤庆县| 界首市| 新和县| 灵川县| 原平市| 江山市| 贵定县| 太仓市| 渝中区|