pathlib
实例属性和方法
创建实例:
p = pathlib.Path(file_path)
实例解析:
descriptor:
parts: 每一层路径
parent: 父目录
parents: 所有父目录
name: 文件名或目录名
suffix: 文件名后缀
suffixes: 文件名后缀列表
stem: 不带后缀文件名
function:
is_absolute: 是否为绝对路径
joinpath: 组合路径
cwd: 当前工作目录
home: 根目录
exists: 是否存在路径
expanduser: 返回带~和~user的路径
glob: 列出匹配的文件或目录
rglob: 递归列出匹配的文件或目录
is_dir: 是否为目录
is_file: 是否为文件
iterdir: 列出路径下的文件和目录
mkdir: 新建目录
open: 打开文件
rename: 重命名
replace: 覆盖
resolve: 转成绝对路径
rmdir: 删除目录
与os和os.path可以互相替代的功能
pathlib
实例对象的核心结构
- 常用字段
字段 | 说明 | 对应os模块的path | |
---|---|---|---|
drive | 磁盘路径 | ||
root | |||
anchor | 磁盘+root | ||
parent | 目录路径 | path.dirname() | |
name | 文件全名 | path.basename() | |
stem | |||
suffix | |||
suffixes |
>>> 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']
常用属性和基本方法
Path.parents # 返回所有上级目录的列表
Path.parts # 分割路径 类似os.path.split(), 不过返回元组
Path.suffix # 返回文件后缀
常用基本方法
Path.is_dir() # 判断是否是目录
Path.is_file() # 是否是文件
Path.exists() # 判断路径是否存在
Path.open() # 打开文件(支持with)
Path. () # 返回绝对路径
Path.cwd() # 返回当前目录
Path.iterdir() # 遍历目录的子目录或者文件
Path.mkdir() # 创建目录
Path.rename() # 重命名路径
Path.unlink() # 删除文件或目录(目录非空触发异常)
Path.joinpath() # 拼接路径
判断文件是否存在
filename = './capsion.py'
def file_exists(filename:str) -> bool:
import pathlib
tar = pathlib.Path(filename)
return (tar.is_file() or tar.is_dir())
获取文件最近修改时间
for each in p.glob("*.pdf"):
print(each.stat().st_mtime)
for each in p.glob("*.pdf"):
each_modification_time = str(os.stat(each).st_mtime)
文件遍历