對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
目錄下的檔案如下:
以下是獲取該目錄下所有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
)
|
結果
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)
|
結果
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類的使用詳解就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援指令碼之家。