比文件操作os库更优异的标准库pathlib
pathlib 库从 python3.4 开始作为内置库,到 python3.6 已经比较成熟。相比于老式的 os.path 有几个优势:
- 老的路径操作函数管理比较混乱,有的是导入 os, 有的又是在 os.path 当中,而新的用法统一可以用 pathlib 管理。
- 老用法在处理不同操作系统 win,mac 以及 linux 之间很吃力。换了操作系统常常要改代码,还经常需要进行一些额外操作。
- 老用法主要是函数形式,返回的数据类型通常是字符串。但是路径和字符串并不等价,所以在使用 os 操作路径的时候常常还要引入其他类库协助操作。新用法是面向对象,处理起来更灵活方便。
- pathlib 简化了很多操作,用起来更轻松。
例如:
os 中获取文件的绝对路径:os.join(os.getcwd(), file_name)
pathlib中获取文件的绝对路径:pathilb.Path().resolve()
os 中获取上一级目录:os.path.abspath(os.path.dirname(os.path.dirname(__file__)))
pathlib中获取上一级目录:pathilb.Path().parents
此外还有一个写法的优势,我们可以看到os的写法是函数式的,由内到外需要一层一层剥开,而pathlib是链式写法,从左到右理解,相较于从内到外理解更加清晰。
1|0生成路径
根据路径生成对象
获取当前路径
路径拼接
2|0路径自身判断
判断当前路径是否存在,即当前路径是文件或目录
判断当前路径是否为文件夹
判断当前路径是否为文件
判断路径是否为绝对路径
判断路径是否满足正则表达
path.match(pattern)
3|0列出路径下文件
path = Path('/home/ljk')
获取路径下的所有符合filename的文件,返回一个generator
获取路径下包括所有子文件夹的的所有符合filename的文件,返回一个generator
当path为文件夹时,通过yield产生path文件夹下的所有文件、文件夹路径的迭代器
4|0路径属性
path = Path('/home/ljk/a.txt')
获取文件的名字
获取文件名,不带后缀
获取文件的后缀
获取文件的上级目录
获取所有上级目录
获取文件的根目录
将路径分割成元祖
5|0获取当前文件的信息
返回文件的绝对路径
返回文件家目录
6|0文件修改
当target是string时,重命名文件或文件夹;当target是Path时,重命名并移动文件或文件夹
重命名当前文件或文件夹,如果target所指示的文件或文件夹已存在,则覆盖原文件
path为空文件夹的时候,删除该文件夹
删除文件或目录,目录非空触发异常
根据路径创建文件夹,parents=True时,会依次创建路径中间缺少的文件夹
打开文件,底层调用open
其他读写的操作
.read_text(): 找到对应的路径然后打开文件,读成str格式。等同open操作文件的"r"格式。
.read_bytes(): 读取字节流的方式。等同open操作文件的"rb"格式。
.write_text(): 文件的写的操作,等同open操作文件的"w"格式。
.write_bytes(): 文件的写的操作,等同open操作文件的"wb"格式。
7|0官方文档
pathlib 官方文档:
https://docs.python.org/3/library/pathlib.html
__EOF__

本文链接:https://www.cnblogs.com/goldsunshine/p/15664821.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理