亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

python內置模塊pathlib.Path類操作目錄和文件的使用

 更新時間:2025年05月13日 09:50:26   作者:科雷learning  
本文主要介紹了python內置模塊pathlib.Path類操作目錄和文件的使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧

python自帶的pathlib模塊提供了很多路徑相關的功能,而pathlib.Path 是pathlib 模塊中的一個核心類,它代表了文件系統(tǒng)中的一個路徑,實現功能比如創(chuàng)建、刪除、移動文件,讀取和寫入文件內容,遍歷目錄等。

Path 類跟os.path提供的功能有很多相似之處,各有所長,大家可根據實際需要選擇os.path或者pathlib.Path。

pathlib.Path路徑操作

使用前我們先導入Path類

from pathlib import Path

以下是Path類的源代碼介紹,繼承自PurePath類,初始化函數支持可變參數,可傳可不傳。

一 介紹classmethod,可通過Path類直接調用

1 Path.cwd()

返回當前程序工作的目錄。

功能類似于os.getcwd()

測試代碼:

print(f'當前目錄: {Path.cwd()}')
當前目錄: /Users/htsc/Desktop

2 Path.home()

返回當前程序工作的目錄的家目錄。

功能類似于os.path.expanduser('~')。

測試代碼:

print(f'當前目錄的家目錄: {Path.home()}')
當前目錄的家目錄: /Users/htsc

二 介紹非classmethod,需要初始化Path類然后調用

3 Path.samefile(other_path)

檢查對象是否跟傳入的路徑是同一個文件或目錄。

功能類似于os.path.samefile()。

測試代碼:

先初始化Path類,傳入參數Path.cwd(),表示當前路徑。

path_ins= Path(Path.cwd())
print(path_ins.samefile('/Users/htsc/Desktop'))
結果:
True

4 Path.iterdir( )

返回當前路徑下的文件和目錄對象,不會遞歸里面的目錄。這個方法返回的是一個生成器,可通過for循環(huán)訪問。

測試代碼:

先初始化Path類,傳入參數Path.cwd(),表示當前路徑。使用iterdir函數訪問目錄的內容,并對子目錄繼續(xù)使用iterdir函數訪問。

path_ins= Path(Path.cwd())
for i in path_ins.iterdir():
   print(f'第一層路徑:{i}')
   if i.is_dir(): #如果有第二層目錄,則循環(huán)
     for j in i.iterdir():
     print(f'第二層路徑:{j}')

5 Path.glob(pattern)

返回與給定模式匹配的所有文件路徑對象;這個方法返回的是一個生成器,可通過for循環(huán)訪問。

參數pattern解釋:pattern是一個字符串,用于指定要搜索的文件模式,有些類似于re模塊對應的正則表達式,支持像通配符*,代表單個字符的?等。

以下是一些pattern參數的示例:

  • '*':匹配給定路徑下所有的文件和目錄(*不會遞歸查找子目錄)。
  • '*.txt':匹配給定路徑下所有以.txt結尾的文件(不會遞歸查找子目錄)。
  • 'a/*.csv':匹配a目錄下所有以.csv結尾的文件。
  • '**':匹配當前目錄及其所有子目錄下的文件和目錄(**支持遞歸)。
  • '**/*.py':匹配當前目錄及其所有子目錄下所有以.py結尾的文件(**支持遞歸)。
  • '?.txt':匹配所有單個字符文件名并以.txt結尾的文件(例如a.txt,但不包括ab.txt)。
  • '[abc].txt':匹配a.txt、b.txt或c.txt。

測試代碼:

先初始化Path類,傳入參數Path.cwd(),表示當前路徑。

1)使用glob函數匹配特定的python文件。

path_ins= Path(Path.cwd())
for i in path_ins.glob('*.py'):
   print(f'路徑:{i}')

 結果如圖:

2)使用glob函數匹配所有的文件和目錄。

path_ins= Path(Path.cwd())
for i in path_ins.glob('*'):
   print(f'路徑:{i}')

結果如圖:

3)使用glob函數匹配當前目錄及所有子目錄下的所有文件和文件夾。

path_ins= Path(Path.cwd())
for i in path_ins.glob('**'):
   print(f'路徑:{i}')

結果如圖:

6 Path.rglob(pattern)

遞歸遍歷所有文件夾,返回與給定模式匹配的所有文件路徑對象,這個方法返回的是一個生成器,可通過for循環(huán)訪問。

rglob函數與glob函數不同之處在于默認會遞歸所有目錄進行匹配。參數pattern與glob函數一致,只是我們不用在傳入**來遞歸了。

測試代碼:

先初始化Path類,傳入參數Path.cwd(),表示當前路徑。

使用rglob函數遞歸所有目錄匹配特定的python文件。

path_ins= Path(Path.cwd())
for i in path_ins.rglob('*.py'):
   print(f'路徑:{i}')

結果如圖:

7 Path.absolute()

返回Path對象的絕對路徑。

絕對路徑=當前程序所在目錄+Path對象的參數路徑

測試代碼:

先初始化Path類,傳入1.txt,打印出絕對路徑。

path_ins= Path('1.txt')
print(path_ins.absolute())
結果:
/Users/htsc/Desktop/1.txt

8 Path.is_absolute()

判斷Path對象是否是絕對路徑。如果是返回True。

測試代碼:

先初始化Path類,傳入1.txt,打印是否是絕對路徑。

path_ins= Path('1.txt')
print(path_ins.is_absolute())
結果:False

9 Path.resolve(strict=False)

返回Path對象為絕對路徑。如果strict參數=True,則校驗Path對象的路徑是否正確。

測試代碼:

1)初始化時隨便寫了一個路徑,strict參數=True

path_ins= Path('eee/1.txt')
print(path_ins.resolve(strict=True))

執(zhí)行結果:

2)初始化時隨便寫了一個路徑,strict參數=True

path_ins= Path('eee/1.txt')
print(path_ins.resolve())

執(zhí)行結果:
/Users/htsc/Desktop/eee/1.txt

10 Path.stat()

返回文件或目錄的狀態(tài)信息,比如文件大小、創(chuàng)建時間、修改時間等。

該函數功能類似于os.stat()

測試代碼:

先初始化Path類,傳入真實存在的文件config.txt

path_ins= Path('config.txt')
print(path_ins.stat())

結果:os.stat_result(st_mode=33188, st_ino=6398788, st_dev=16777233, st_nlink=1, st_uid=501, st_gid=20, st_size=81, st_atime=1724491423, st_mtime=1724423868, st_ctime=1724423868)

11 Path.owner()

判斷Path對象的擁有者,一般是登錄用戶。

測試代碼:

先初始化Path類,傳入1.txt,打印owner

path_ins= Path('1.txt')
print(path_ins.owner())
結果:Admin

12 文件打開/讀取/寫入相關函數

  • Path.open(): 類似于open函數,打開文件對象
  • Path.read_bytes():讀取二進制文件內容
  • Path.read_text(): 讀取普通文本內容
  • Path.write_bytes(data): 以二進制內容寫入
  • Path.wriite_text(data): 以普通文本內容寫入

13 Path.touch()

默認情況下該方法用于創(chuàng)建一個新的空文件,如果文件已經存在,則會更新其訪問和修改時間。

  • 參數exist_ok=False時,則檢查傳入的路徑是否已經存在,已經存在會報錯。
  • 參數mode是文件和目錄的權限設置,默認是666,代表可讀和可寫。具體解釋參考以下chmod函數的介紹。

測試代碼:

#初始化時隨便寫了一個文件名
path_ins= Path('1.txt')
Path_ins.touch()

執(zhí)行結果:在本地目錄新建了一個1.txt的空文件。

14 Path.mkdir()

默認情況下該方法用于創(chuàng)建多個新的空文件夾,如果父文件夾或者子文件夾存在時,則報錯。

功能類似于os.makedirs()函數

  • 參數exist_ok=True時,則不在檢查子文件夾是否已經存在。
  • 參數parents=True時,則不在檢查父文件夾是否已經存在。

測試代碼:

初始化時隨便寫了兩個文件夾路徑
path_ins= Path('2/2')
path_ins.mkdir(parents=True,exist_ok=True)
path_ins.mkdir()

執(zhí)行結果:在本地目錄新建了文件夾2,在文件夾2中又創(chuàng)建了文件夾2,當文件夾存在時最后的語句執(zhí)行會報錯FileExistsError。

15 Path.rmdir()

刪除空文件夾,如果不是空文件夾則報錯,功能類似于os.rmdir()函數

16 Path.rename(target)

將傳入的路徑重新命名為目標路徑。

測試代碼:

先初始化Path類,將config.txt命名為cfg.txt

path_ins= Path('config.txt')
path_ins.rename('cfg.txt')

17 Path.exits()

判斷路徑是否存在。功能類似于os.path.exits(path)

18 Path.is_file()

檢查路徑是否是一個文件。功能類似于os.path.isfile(path)

19 Path.is_dir()

檢查路徑是否是一個目錄。功能類似于os.path.isdir(path)

20 Path.chmod()

更改目錄或文件的權限。功能類似于os.chmod(),這在linux機器上比較常用,在windows下不太常用。

mode權限模式可以使用八進制數(如0o755),由三個部分組成,每個部分表示不同的用戶組對文件的權限:文件所有者(Owner)、所屬組(Group)、其他用戶(Others)。

文件權限類型‌:單個數字最大為4+2+1=7

  • 讀(r):值為4,表示可以讀取文件內容。
  • 寫(w):值為2,表示可以修改文件內容。
  • 執(zhí)行(x):值為1,表示可以執(zhí)行該文件或者訪問該目錄。

常見權限設置‌:

chmod 755:所有者具有讀、寫、執(zhí)行權限;所屬組和其他用戶具有讀、執(zhí)行權限。

chmod 777:所有者,所屬組和其他用戶都具有讀、寫、執(zhí)行權限。

測試代碼:

path_ins= Path('config3.txt')
print(path_ins.chmod(0o755))

到此這篇關于python內置模塊pathlib.Path類操作目錄和文件的使用的文章就介紹到這了,更多相關python pathlib.Path操作目錄和文件內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家! 

相關文章

  • 淺析Python 責任鏈設計模式

    淺析Python 責任鏈設計模式

    這篇文章主要介紹了Python 責任鏈設計模式的相關資料,幫助大家更好的理解和學習python 設計模式,感興趣的朋友可以了解下
    2020-09-09
  • Python中函數相關的變量作用域

    Python中函數相關的變量作用域

    這篇文章主要介紹了Python中函數相關的變量作用域,變量的作用域是指程序代碼能夠訪問該變量的區(qū)域,如果超出該區(qū)域,在訪問時就會出現錯誤,需要的朋友可以參考下
    2023-08-08
  • TensorBoard 計算圖的查看方式

    TensorBoard 計算圖的查看方式

    今天小編就為大家分享一篇TensorBoard 計算圖的查看方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-02-02
  • 基于Python實現本地音樂播放器的制作

    基于Python實現本地音樂播放器的制作

    這篇文章主要介紹了如何利用Python實現本地音樂播放器的制作,并且可以選擇需要播放的音樂的路徑,選擇播放方式,感興趣的小伙伴可以了解一下
    2022-06-06
  • python multiprocessing多進程變量共享與加鎖的實現

    python multiprocessing多進程變量共享與加鎖的實現

    這篇文章主要介紹了python multiprocessing多進程變量共享與加鎖的實現,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-10-10
  • 如何在Flask中實現數據分組流程詳解

    如何在Flask中實現數據分組流程詳解

    在Flask中,數據分組是指將一組數據按照某種方式進行分類,以便更好地對數據進行處理和展示,可以使用Python內置的itertools模塊中的groupby方法,或者使用SQL語句中的GROUP?BY子句來實現數據分組,這篇文章介紹了在Flask中實現數據分組,感興趣的同學可以參考下文
    2023-05-05
  • PyG搭建GCN模型實現節(jié)點分類GCNConv參數詳解

    PyG搭建GCN模型實現節(jié)點分類GCNConv參數詳解

    這篇文章主要為大家介紹了PyG搭建GCN模型實現節(jié)點分類GCNConv參數詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • 關于你不想知道的所有Python3 unicode特性

    關于你不想知道的所有Python3 unicode特性

    我的讀者知道我是一個喜歡痛罵Python3 unicode的人。這次也不例外。我將會告訴你用unicode有多痛苦和為什么我不能閉嘴。我花了兩周時間研究Python3,我需要發(fā)泄我的失望。在這些責罵中,仍然有有用的信息,因為它教我們如何來處理Python3。如果沒有被我煩到,就讀一讀吧
    2014-11-11
  • Python base64編碼解碼實例

    Python base64編碼解碼實例

    這篇文章主要介紹了Python base64編碼解碼實例,本文直接給出實例代碼,使用也很簡單,需要的朋友可以參考下
    2015-06-06
  • python實現圖書管理系統(tǒng)

    python實現圖書管理系統(tǒng)

    這篇文章主要為大家詳細介紹了python實現圖書管理系統(tǒng),文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論