檔案建立日期: 2020/01/02
最後修訂日期: 2021/07/17
相關軟體資訊:
參考檔案: pathlib — Object-oriented filesystem paths
說明: 所有內容歡迎引用, 只需註明來源及作者, 本文內容如有錯誤或用詞不當, 敬請指正.
標題: 001.02 pathlib路徑包
PATHLIB 路徑包分為兩大類
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 檔案系統路徑物件
- 引數
- 返回
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 協議》,轉載必須註明作者和本文連結