pathlib相关操作

from pathlib import Path

base_dir = 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 = Path('E:/测试目录A/测试目录B').name
print(name)  # 测试目录B

获取文件名(不带扩展)或最后一个目录名

stem = base_dir.stem
print(stem)  # 测试文档
stem = Path('E:/测试目录A/测试目录B').stem
print(stem)  # 测试目录B

获取路径中的文件扩展

suffix = base_dir.suffix
print(suffix)  # .txt

获取路径中的文件扩展,返回列表

suffixes = base_dir.suffixes
print(suffixes)  # ['.txt']
suffixes = Path('E:/测试目录A/测试目录B/a.tar.gz').suffixes
print(suffixes)  # ['.tar', '.gz']

路径组成

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:\

获取绝对路径

abs_path = 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 = Path('E:/测试目录A').joinpath('测试目录D', '测试目录E')
print(new_path)  # E:\测试目录A\测试目录D\测试目录E
new_path = Path('E:/测试目录A') / '测试目录D' / '测试目录E'
print(new_path)  # E:\测试目录A\测试目录D\测试目录E

文件是否存在

res = base_dir.exists()
print(res)  # True

扫描当前目录下的文件及目录

res = 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 = Path('E:/测试目录A').glob('*.txt')
print(list(res))  # [WindowsPath('E:/测试目录A/新建文本文档.txt')]

文件查找:当前目录及其子目录

res = 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')

创建文件

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

Path('E:/测试目录A/测试目录E/测试目录F').mkdir(parents=True, exist_ok=True)

删除文件

Path(r"E:\测试目录A\测试目录B\abc.txt").unlink()

删除目录

只能删除空目录,删除目录不存在时报错

Path(r"E:\测试目录A\测试目录D").rmdir()
posted @ 2023-02-28 14:37  cnblogs用户  阅读(38)  评论(0编辑  收藏  举报