1. 程式人生 > >對python3中pathlib庫的Path類的使用詳解

對python3中pathlib庫的Path類的使用詳解

原文連線   https://www.jb51.net/article/148789.htm

 

1.呼叫庫

?
1 from pathlib import

2.建立Path物件

?
1 2 3 4 5 6 7 p = Path( 'D:/python/1.py' ) print (p)   #可以這麼使用,相當於os.path.join() p1 = Path( 'D:/python'
) p2 = p1 / '123' print (p2)

結果

?
1 2 D:\python\
1.py D:\python\ 123

3.Path.cwd()

獲取當前路徑

?
1 2 path = Path.cwd() print (path)

結果:

?
1 D:\python

4.Path.stat()

獲取當前檔案的資訊

?
1 2 p = Path( '1.py' ) print (p.stat())

結果

?
1 os.stat_result(st_mode = 33206 , st_ino = 8444249301448143 , st_dev = 2561774433 , st_nlink = 1 , st_uid = 0 , st_gid = 0 , st_size = 4 , st_atime = 1525926554 , st_mtime = 1525926554 , st_ctime = 1525926554 )

5.Path.exists()

判斷當前路徑是否是檔案或者資料夾

?
1 2 3 4 5 6 >>> Path( '.' ).exists() True >>> Path( '1.py' ).exists() True >>> Path( '2.py' ).exists() False

6.Path.glob(pattern)與Path.rglob(pattern)

Path.glob(pattern):獲取路徑下的所有符合pattern的檔案,返回一個generator

目錄下的檔案如下:

python3 pathlib庫的Path類的使用

以下是獲取該目錄下所有py檔案的路徑:

?
1 2 3 4 path = Path.cwd() pys = path.glob( '*.py' ) #pys是經過yield產生的迭代器 for py in pys:    print (py)

結果:

?
1 2 3 4 C:\python\ 1.py C:\python\ 11.py C:\python\ 1111.py C:\python\ 11111.py

Path.rglob(pattern):與上面類似,只不過是返回路徑中所有子資料夾的符合pattern的檔案。

7.Path.is_dir()與Path.is_file()

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 Path.is_dir()判斷該路徑是否是資料夾 Path.is_file()判斷該路徑是否是檔案   print ( 'p1:' ) p1 = Path( 'D:/python' ) print (p1.is_dir()) print (p1.is_file())   print ( 'p2:' ) p2 = Path( 'D:/python/1.py' ) print (p2.is_dir()) print (p2.is_file())   #當路徑不存在時也會返回Fasle print ( 'wrong path:' ) print (Path( 'D:/NoneExistsPath' ).is_dir()) print (Path( 'D:/NoneExistsPath' ).is_file())

結果

?
1 2 3 4 5 6 7 8 9 p1: True False p2: False True wrong path: False False

8.Path.iterdir()

當path為資料夾時,通過yield產生path資料夾下的所有檔案、資料夾路徑的迭代器

?
1 2 3 p = Path.cwd() for i in p.iterdir():    print (i)

結果

?
1 2 3 4 5 D:\python\ 1.py D:\python\ 11.py D:\python\ 1111.py D:\python\ 11111.py D:\python\ dir

9.Path.mkdir(mode=0o777,parents=Fasle)

根據路徑建立資料夾

parents=True時,會依次建立路徑中間缺少的資料夾

?
1 2 3 4 5 p_new = p / 'new_dir' p_new.mkdir()   p_news = p / 'new_dirs/new_dir' p_news.mkdir(parents = True )

結果

python3 pathlib庫的Path類的使用

10.Path.open(mode='r', buffering=-1, encoding=None, errors=None, newline=None)

類似於open()函式

11.Path.rename(target)

當target是string時,重新命名檔案或資料夾

當target是Path時,重新命名並移動檔案或資料夾

?
1 2 3 4 5 6 p1 = Path( '1.py' ) p1.rename( 'new_name.py' )   p2 = Path( '11.py' ) target = Path( 'new_dir/new_name.py' ) p2.rename(target)

結果

python3 pathlib庫的Path類的使用

12.Path.replace(target)

重新命名當前檔案或資料夾,如果target所指示的檔案或資料夾已存在,則覆蓋原檔案

13.Path.parent(),Path.parents()

parent獲取path的上級路徑,parents獲取path的所有上級路徑

14.Path.is_absolute()

判斷path是否是絕對路徑

15.Path.match(pattern)

判斷path是否滿足pattern

16.Path.rmdir()

當path為空資料夾的時候,刪除該資料夾

17.Path.name

獲取path檔名

18.Path.suffix

獲取path檔案字尾

以上這篇對python3中pathlib庫的Path類的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援指令碼之家。