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.link_to(r"C:\Users\Desktop\新建文件夹\abc.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 @   cnblogs用户  阅读(55)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示