001.02 pathlib 路徑包

Jason990420發表於2020-01-02

檔案建立日期: 2020/01/02
最後修訂日期: 2021/07/17
相關軟體資訊:

Win 10 Python 3.9.5

參考檔案: pathlib — Object-oriented filesystem paths

說明: 所有內容歡迎引用, 只需註明來源及作者, 本文內容如有錯誤或用詞不當, 敬請指正.

標題: 001.02 pathlib路徑包

PATHLIB 路徑包分為兩大類

Python

1. class pathlib.PurePath(*pathsegments) 單純路徑

  • 只會作一些路徑處理, 沒有真正的檔案 I/O, 可以在不同的平臺運作, 會建立一個os.PathLike介面, 代表會返回字串的檔案檔案系統路徑.
  • 引數
    • pathsegments可以是以下各項的組合, 以逗號隔開.
      • 路徑字串
      • 一個os.PathLike介面物件
      • 路徑物件
    • 沒給引數, 省缺為”.”, 代表目前所在的目錄.
  • 返回組合後的路徑物件
    • class pathlib.PurePosixPath(*pathsegments)

    • class pathlib.PureWindowsPath(*pathsegments)

2. class pathlib.Path(*pathsegments) 具體路徑

  • 除了一些路徑處理, 還有檔案 I/O, 因此不能在不同的平臺運作; 會建立一個os.PathLike介面, 代表會返回字串的檔案系統路徑.
  • os.PathLike 檔案系統路徑物件
  • 引數
    • pathsegments
  • 返回
    • class pathlib.PosixPath(*pathsegments)

    • class pathlib.WindowsPath(*pathsegments)

PurePath方法

方法 說明
PurePath.anchor 磁碟驅動器及根路徑字串 “D:\“
PurePath.as_posix() 帶有”/“的路徑字串 “D:/path/filename.ext”
PurePath.as_uri() 絶對路徑檔案 URI (統一資源標誌符) 的路徑 “file:///D:/path/filename.ext”
PurePath.drive 磁碟驅動器字串 “D:”
PurePath.is_absolute() 檢查是否是帶有磁碟驅動器及根目錄的絶對路徑
PurePath.is_reserved() 在PureWindowsPath下, 是否是Windows的保留路徑
PurePath.joinpath() 路徑合併
PurePath.match() 由右至左匹配路徑格式是否符合pattern的要求
PurePath.name 檔名 “filename.ext”
PurePath.parent 父路徑 WindowsPath(“D:/path’)
PurePath.parents 所有父層的路徑 <WindowsPath.parents>
PurePath.relative_to() 路徑差異
PurePath.root 根路徑字串 “\“
PurePath.stem 最終路徑或檔名, 不含最一個附屬檔名 “filename”
PurePath.suffix 附屬檔名 “.ext”
PurePath.suffixes 所有附屬檔名 [“.ext”]
PurePath.with_name() 新檔名的路徑
PurePath.with_suffix() 帶有新擴充檔名的路徑

Class pathlib.Path 另外增加的方法

方法 說明
Path.chmod() 改變檔案的模式及許可權
Path.cwd() 改換目前目錄所在
Path.exists() 路徑所指檔案或目錄是否存在
Path.expanduser() 展開包含 ~ 和 ~user 的構造
Path.glob() 通配得到所有目錄中的檔案
Path.group() 返回擁有此檔案的使用者組
Path.home() 當前使用者的目錄路徑物件
Path.is_block_device() 是否是一個阻塞裝置
Path.is_char_device() 是否是一個字元裝置
Path.is_dir() 是否是一個目錄
Path.is_fifo() 是否是一個先進先出FIFO
Path.is_file() 是否是一個一般的檔案
Path.is_mount() 檢查父路徑與路徑是否在同一裝置上, 而且有一樣的i-node.
Path.is_socket() 是否是一個Unix socket
Path.is_symlink() 是否是一個符號連結
Path.iterdir() 迭代目錄內容
Path.lchmod() 如同Path.chmod(), 但是如果是符號連結, 改變的是符號連結的模式
Path.link_to() 建立一個硬連結到target路徑
Path.lstat() 如同Path.stat(), 但是如果是符號連結, 返回的是符號連結的狀態
Path.mkdir() 建立新目錄
Path.open() 開啟檔案
Path.owner() 該檔案擁有者
Path.read_bytes() 讀取字元物件檔案的二位內容
Path.read_text() 讀取物件檔案的字串內容
Path.rename() 更改檔案或目錄的路徑名, 並返回新的路徑
Path.replace() 直接更改檔案或目錄的路徑名, 並返回新的路徑.
Path.resolve() 返回絶對路徑, 並解開符號連結並去掉”..” WindowsPath(‘path/filename.ext’)
Path.absolute() 返回絶對路徑, 並解開符號連結並去掉”..” WindowsPath(‘D:/path/filename.ext’)
Path.rglob() 類似Path.glob()引數前加”**/“找出所有符合pattern的檔案或目錄
Path.rmdir() 移除空目錄
Path.samefile() 是否指向同一個檔案, 類似os.path.samefile()以及os.path.samestat()
Path.stat() 路徑的資訊
Path.symlink_to() 將路徑轉為指向target的符號連結
Path.touch() 建立新的檔案
Path.unlink() 移除檔案或符號連結
Path.write_bytes() 寫入位資料
Path.write_text() 寫入字串資料

PurePath/Path與OS相對應函式的列表

os, os.path pathlib
os.path.abspath() Path.resolve()
os.chmod() Path.chmod()
os.mkdir() Path.mkdir()
os.rename() Path.rename()
os.replace() Path.replace()
os.rmdir() Path.rmdir()
os.remove(), os.unlink() Path.unlink()
os.getcwd() Path.cwd()
os.path.exists() Path.exists()
os.path.expanduser() Path.expanduser(), Path.home()
os.path.isdir() Path.is_dir()
os.path.isfile() Path.is_file()
os.path.islink() Path.is_symlink()
os.stat() Path.stat(), Path.owner(), Path.group()
os.path.isabs() PurePath.is_absolute()
os.path.join() PurePath.joinpath()
os.path.basename() PurePath.name
os.path.dirname() PurePath.parent
os.path.samefile() Path.samefile()
os.path.splitext() PurePath.suffix
本作品採用《CC 協議》,轉載必須註明作者和本文連結
Jason Yang

相關文章