一個超好用的 Python 標準庫,徹底玩透路徑操作
阿新 • • 發佈:2021-12-11
pathlib
學習 Python 時,尤其是在進行檔案操作和資料處理時,經常會處理路徑問題。最常用和常見的是 os.path 模組,它將路徑當做字串進行處理,如果使用不當可能導致難以察覺的錯誤,而且程式碼很難跨平臺複用。pathlib
就是一個非常棒的Python標準庫,超級好用。
pathlib
模組提供了一種在 POSIX 系統(如 Linux 和 Windows)下執行良好的高階抽象。pathlib 抽象了資源路徑和資源命名結構,它把檔案系統介面從os模組中隔離出來,將操作作為方法
提供,使用更簡單。
下面這張圖,完美詮釋pathlib
的核心
>>> from pathlib import Path >>> path = Path(r'C:/Users/Miguel/projects/blog/config.tar.gz') >>> path.drive 'C:' >>> path.root '/' >>> path.root 'C:/' >>> path.parent WindowsPath('C:/Users/Miguel/projects/blog') >>> path.name 'config.tar.gz' >>> path.stem 'config.tar' >>> path.suffix '.gz' >>> path.suffixes ['.tar', '.gz']
常用屬性和基本方法
pathlib
的常用屬性
Path.parents # 返回所有上級目錄的列表
Path.parts # 分割路徑 類似os.path.split(), 不過返回元組
Path.suffix # 返回檔案字尾
pathlib
的常用基本方法
Path.is_dir() # 判斷是否是目錄 Path.is_file() # 是否是檔案 Path.exists() # 判斷路徑是否存在 Path.open() # 開啟檔案(支援with) Path.resolve() # 返回絕對路徑 Path.cwd() # 返回當前目錄 Path.iterdir() # 遍歷目錄的子目錄或者檔案 Path.mkdir() # 建立目錄 Path.rename() # 重新命名路徑 Path.unlink() # 刪除檔案或目錄(目錄非空觸發異常) Path.joinpath() # 拼接路徑
os and os.path VS pathlib
pathlib
可替代 os 和 os.path 的常用功能:
總結
pathlib
將路徑作為物件建立,提供了處理檔案路徑的方便快捷的方法。
本文我並沒有羅列pathlib
的每一個用法,最核心的是要充分理解 pathlib 基本元件,然後有疑問去查文件即可。
參考:
https://miguendes.me/python-pathlib
https://docs.python.org/3/library/pathlib.html
https://www.cnblogs.com/poloyy/p/12435628.html