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()
本文来自博客园,仅供参考学习,如有不当之处还望不吝赐教,不胜感激!转载请注明原文链接:https://www.cnblogs.com/rong-z/p/17164207.html
作者:cnblogs用户
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人