python系列13:python中Path常用功能
1. 基本功能
建議使用pathlib模塊來處理文件和文件夾,可以跨平臺(tái)。pathlib提供path對象來操作,包括目錄和文件。
from pathlib import Path p =Path() #輸出格式。PosixPath('.') p =Path('a','b','c/d') #輸出格式PosixPath('a/b/c/d') p =Path('/etc') #PosixPath('/etc')2. 路徑拼接和分解
使用操作符/進(jìn)行路徑拼接,有兩種方式:① Path對象/Path對象;② Path對象/字符串,或者字符串/Path對象;也可以使用joinpath方法。
使用Parts屬性進(jìn)行路徑分解,可以返回路徑中的每一個(gè)部分
p = Path() # 當(dāng)前目錄,PosixPath('.') p = p/'a' #PosixPath('a') p1 = 'b'/p #PosixPath('b/a') p2 = Path('c') #PosixPath('c') p3 = p2 /p1 #PosixPath('c/b/a') print(p3.parts) #('c', 'b', 'a') p3.joinpath('etc','int.d',Path('.httpd')) #PosixPath('c/b/a/etc/int.d/.httpd')3. 獲取路徑
Str獲取路徑字符串。Bytes獲取路徑字符串的bytes。
p = Path('/etc') print(str(p),bytes(p)) #/etc b'/etc'使用parent獲取父目錄,使用parents獲取所有父目錄,使用absolute方法獲取絕對路徑
p = Path('/a/b/c/d') p.parent.parent # / PosixPath('/a/b') p.absolute().parents[len(p.absolute().parents)-1] # PosixPath('/') print(len(p.absolute().parents)) # 4獲取文件路徑的方法:
(1)name:目錄的最后一個(gè)部分
(2)suffix:目錄中最后一個(gè)部分的拓展名
(3)stem:目錄最后一個(gè)部分,沒有后綴。
(4)suffixes 返回多個(gè)擴(kuò)展名列表。
(5)with_suffix(suffix):補(bǔ)充擴(kuò)展名到路徑尾部,返回新的路徑,擴(kuò)展名存在則無效。
(6)with_name(name):替換目錄最后一個(gè)部分并返回一個(gè)新的路徑。
4. 文件操作
open(mode=’r’,buffering=-1,encoding=None,errors=None,newline=None):使用方法類似內(nèi)建函數(shù)open,返回一個(gè)文件對象。
read_bytes():以’rb’讀取路徑相對文件,并返回二進(jìn)制流。
read_text(encoding=None,errors=None):以’rt’ 方式讀取路徑對應(yīng)文件,返回文本。
Path.write_bytes(data):以’wb’方式寫入數(shù)據(jù)到路徑對應(yīng)文件。
write_text(data,encoding=None,errors=None):以’wt’方式寫入字符串到路徑對應(yīng)文件。
5. 文件夾操作
(1)as_uri()將文件路徑返回URI。
(2)mkdir(mode=0o777,parents=False,exist_ok=False)
(3)Parents,是否創(chuàng)建父目錄,True等同于mkdir-p:False時(shí),父目錄不存在,則拋出fileNotfounderror。
(4)exist_ok參數(shù),在3.5版本加入,flase時(shí)路徑存在,拋出異常,True時(shí)候異常被忽略。
(5)Iterdir():迭代當(dāng)前目錄
(6)touch(mode=0o666,exist_ok=True)創(chuàng)建一個(gè)文件
(7)cwd():返回當(dāng)前工作目錄
(8)home():返回當(dāng)前目錄
(9)is_dir():是否是目錄,目錄存在返回True.
(10)is_symlink():是否是軟連接
(11)is_file():是否是普通文件,文件存在返回True
(12)is_socket():是否是socket文件
(13)is_block_device():是否是塊設(shè)備。
(14)is_char_device():是否是字符設(shè)備
(15)is_absolute():是否是絕對路徑
(16)resolve():返回一個(gè)新的路徑,這個(gè)新的路徑就是當(dāng)前Path的絕對路徑,如果是軟連接則直接被解析
(17)absolute()也可以獲取絕對路徑,但是推薦使用resolve()
(18)exists()目錄或文件是否存在
(19)rmdir()刪除空目錄,沒有提供判斷目錄為空的方法。
(20)ls():獲取所有文件和文件夾
6. 通配操作
glob(pattern):通配給定的模式。
rglob(pattern):通配給定的模式,遞歸目錄,返回一個(gè)生成器。
match(pattern):返回True或False的通配函數(shù)。
Path('a/b.py').match('*.py') #True Path('/a/b/c.py').match('b/*.py')#True Path('/a/b/c.py').match('a/*.py') #False 因?yàn)閍文件下找不到.Py文件 Path('/a/b/c.py').match('a/*/*.py')#True Path('/a/b/c.py').math('a/**/*.py')#True Path('/a/b/c.py').math('**/*.py')#True總結(jié)
以上是生活随笔為你收集整理的python系列13:python中Path常用功能的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: shell脚本之批量删除文件
- 下一篇: 【python】rank函数