import pathlib
base_dir = pathlib.Path('E:/测试目录A/测试目录B/测试文档.txt')
# 获取父级目录
parent = base_dir.parent
print(parent) # E:\测试目录A\测试目录B
parents = base_dir.parents
list(parents) # [WindowsPath('E:/测试目录A/测试目录B'), WindowsPath('E:/测试目录A'), WindowsPath('E:/')]
# 获取文件名(带扩展)或最后一个目录
name = base_dir.name
print(name) # 测试文档.txt
name = pathlib.Path('E:/测试目录A/测试目录B').name
print(name) # 测试目录B
# 获取文件名(不带扩展)或最后一个目录名
stem = base_dir.stem
print(stem) # 测试文档
stem = pathlib.Path('E:/测试目录A/测试目录B').stem
print(stem) # 测试目录B
# 路径切分
parts = base_dir.parts
print(parts) # ('E:\\', '测试目录A', '测试目录B', '测试文档.txt')
# 获取路径中的根路径
root = base_dir.root
print(root) # \
# 获取路径中的盘符
drive = base_dir.drive
print(drive) # E:
# 获取路径中的盘符及根路径
anchor = base_dir.anchor
print(anchor) # E:\
# 获取路径中的文件扩展
suffix = base_dir.suffix
print(suffix) # .txt
# 获取路径中的文件扩展,返回列表
suffixes = base_dir.suffixes
print(suffixes) # ['.txt']
suffixes = pathlib.Path('E:/测试目录A/测试目录B/a.tar.gz').suffixes
print(suffixes) # ['.tar', '.gz']
# 获取绝对路径
abs_path = pathlib.Path('./sanic_test.py').resolve()
print(abs_path) # E:\PythonProject\sanic_test.py
# 文件查找,返回bool
res = base_dir.match('*.txt')
print(res) # True
# 获取用户的家目录
home = base_dir.home()
print(home) # C:\Users\XXX
# 获取文件相关信息
c_time = base_dir.stat().st_ctime
print(c_time) # 1677554830.884977
# 路径拼接
new_path = pathlib.Path('E:/测试目录A').joinpath('测试目录D', '测试目录E')
print(new_path) # E:\测试目录A\测试目录D\测试目录E
new_path = pathlib.Path('E:/测试目录A') / '测试目录D' / '测试目录E'
print(new_path) # E:\测试目录A\测试目录D\测试目录E
# 文件是否存在
res = base_dir.exists()
print(res) # True
# 扫描当前目录下的文件及目录
res = pathlib.Path(r"E:\测试目录A\测试目录B").iterdir()
print(list(res))
# [WindowsPath('E:/测试目录A/测试目录B/测试Excel.xlsx'), WindowsPath('E:/测试目录A/测试目录B/测试ppt.pptx'),
# WindowsPath('E:/测试目录A/测试目录B/测试word.docx'), WindowsPath('E:/测试目录A/测试目录B/测试目录C')]
# 文件查找:当前目录
res = pathlib.Path('E:/测试目录A').glob('*.txt')
print(list(res)) # [WindowsPath('E:/测试目录A/新建文本文档.txt')]
# 文件查找:当前目录及其子目录
res = pathlib.Path('E:/测试目录A').glob('**/*.txt')
print(list(res))
# [WindowsPath('E:/测试目录A/新建文本文档.txt'), WindowsPath('E:/测试目录A/测试目录B/abc.txt'), WindowsPath('E:/测试目录A/测试目录B/测试文档.txt')]
# 移动文件,并重命名
base_dir.replace('E:/测试目录A/测试文档abc.txt')
# 创建文件
pathlib.Path('E:/测试目录A/测试目录B/abc.txt').touch()
# 重命名文件
res_name = base_dir.with_name('abcde.txt')
base_dir.replace(res_name)
print(res_name) # E:\测试目录A\测试目录B\abcde.txt
# 创建目录,创建多级目录时,指定参数parents=True;当目录存在时指定参数exist_ok=True
pathlib.Path('E:/测试目录A/测试目录E/测试目录F').mkdir(parents=True, exist_ok=True)
# 删除文件
pathlib.Path(r"E:\测试目录A\测试目录B\abc.txt").unlink()
# 删除目录,只能删除空目录,删除目录不存在时报错
pathlib.Path(r"E:\测试目录A\测试目录D").rmdir()
标签:pathlib,base,测试,相关,print,操作,目录,dir
From: https://www.cnblogs.com/rong-z/p/17164207.html