Python标准库pathlib操作目录和文件


Posted in Python onNovember 20, 2021

学习 Python 时,尤其是在进行文件操作和数据处理时,经常会处理路径问题。最常用和常见的是 os.path 模块,它将路径当做字符串进行处理,如果使用不当可能导致难以察觉的错误,而且代码很难跨平台复用。pathlib 就是一个非常棒的Python标准库,超级好用。

pathlib模块提供了一种在 POSIX 系统(如 Linux 和 Windows)下运行良好的高级抽象,它抽象了资源路径和资源命名结构,把文件系统接口从os模块中隔离出来,将操作作为方法提供,使用更简单。

下面这张图,完美诠释pathlib的核心

Python标准库pathlib操作目录和文件

pathlib 基本组件

>>> from pathlib import Path
>>> path = Path(r'C:/Users/Miguel/projects/blog/config.tar.gz')
>>> path.drive
'C:'
>>> path.root
'/'
>>> path.root
'C:/'
>>> path.parent
WindowsPath('C:/Users/Miguel/projects/blog')
>>> path.name
'config.tar.gz'
>>> path.stem
'config.tar'
>>> path.suffix
'.gz'
>>> path.suffixes
['.tar', '.gz']

常用属性和基本方法

pathlib的常用属性

Path.parents  # 返回所有上级目录的列表
Path.parts  # 分割路径 类似os.path.split(), 不过返回元组
Path.suffix   # 返回文件后缀

pathlib的常用基本方法

Path.is_dir()  # 判断是否是目录
Path.is_file()  # 是否是文件
Path.exists()  # 判断路径是否存在
Path.open()  # 打开文件(支持with)
Path.resolve()  # 返回绝对路径
Path.cwd()  # 返回当前目录
Path.iterdir()  # 遍历目录的子目录或者文件
Path.mkdir()  # 创建目录
Path.rename()  # 重命名路径
Path.unlink()  # 删除文件或目录(目录非空触发异常)
Path.joinpath()  # 拼接路径

os and os.path VS pathlib

pathlib 可替代 os 和 os.path 的常用功能:

Python标准库pathlib操作目录和文件

总结

pathlib 将路径作为对象创建,提供了处理文件路径的方便快捷的方法。

本文我并没有罗列pathlib的每一个用法,我觉得最重要的是要充分理解 pathlib 基本组件,然后有疑问去查文档即可。

参考:
https://miguendes.me/python-pathlib https://docs.python.org/3/library/pathlib.html
https://www.cnblogs.com/poloyy/p/12435628.html

以上就是Python标准库pathlib操作目录和文件的详细内容,更多关于pathlib库操作目录和文件的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python使用MONGODB入门实例
May 11 Python
详解Python爬虫的基本写法
Jan 08 Python
Python生成器以及应用实例解析
Feb 08 Python
Python编程实现从字典中提取子集的方法分析
Feb 09 Python
解决python通过cx_Oracle模块连接Oracle乱码的问题
Oct 18 Python
Python 通过截图匹配原图中的位置(opencv)实例
Aug 27 Python
python+django+rest框架配置创建方法
Aug 31 Python
Django中使用haystack+whoosh实现搜索功能
Oct 08 Python
python多项式拟合之np.polyfit 和 np.polyld详解
Feb 18 Python
Python绘制全球疫情变化地图的实例代码
Apr 20 Python
Python进度条的使用
May 17 Python
python区块链持久化和命令行接口实现简版
May 25 Python
python数据可视化使用pyfinance分析证券收益示例详解
python编程学习使用管道Pipe编写优化代码
Nov 20 #Python
python自动化测试通过日志3分钟定位bug
Nov 20 #Python
Python实现位图分割的效果
python脚本框架webpy模板赋值实现
python脚本框架webpy模板控制结构
Nov 20 #Python
python脚本框架webpy的url映射详解
Nov 20 #Python
You might like
在PHP中读取和写入WORD文档的代码
2008/04/09 PHP
Discuz 6.0+ 批量注册用户名
2009/09/13 PHP
PHP服务器页面间跳转实现方法
2012/08/02 PHP
浅析PHP程序防止ddos,dns,集群服务器攻击的解决办法
2013/06/18 PHP
PHP中数组定义的几种方法
2013/09/01 PHP
用js判断浏览器是否是IE的比较好的办法
2007/05/08 Javascript
javascript动态的改变IFrame的高度实现自动伸展
2013/10/12 Javascript
基于jQuery实现的美观星级评论打分组件代码
2015/10/30 Javascript
初步了解javascript面向对象
2015/11/09 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
基于vue循环列表时点击跳转页面的方法
2018/08/31 Javascript
BootStrap表单验证中的非Submit类型按钮点击时触发验证的坑
2019/09/05 Javascript
react实现同页面三级跳转路由布局
2019/09/26 Javascript
JS co 函数库的含义和用法实例总结
2020/04/08 Javascript
python错误:AttributeError: 'module' object has no attribute 'setdefaultencoding'问题的解决方法
2014/08/22 Python
快速排序的四种python实现(推荐)
2019/04/03 Python
详解python3安装pillow后报错没有pillow模块以及没有PIL模块问题解决
2019/04/17 Python
Django组件cookie与session的具体使用
2019/06/05 Python
浅析PyTorch中nn.Module的使用
2019/08/18 Python
python中random.randint和random.randrange的区别详解
2020/09/20 Python
找到不普通的东西:Bonanza
2016/10/20 全球购物
Betsey Johnson官网:妖娆可爱的连衣裙及鞋子、手袋和配件
2016/12/30 全球购物
加拿大约会网站:EliteSingles.ca
2018/01/12 全球购物
澳大利亚网上买书:Angus & Robertson
2019/07/21 全球购物
医药工作者的求职信范文
2013/09/21 职场文书
高三体育教学反思
2014/01/29 职场文书
日本语毕业生自荐信
2014/02/01 职场文书
个人自我剖析材料
2014/02/07 职场文书
葛优非诚勿扰搞笑征婚台词
2014/03/17 职场文书
学历公证书范本
2014/04/09 职场文书
2014年初三班主任工作总结
2014/12/05 职场文书
劳资员岗位职责
2015/02/13 职场文书
2015年少先队活动总结
2015/03/25 职场文书
幼儿园2015年度工作总结
2015/04/01 职场文书
2015年党建工作目标责任书
2015/05/08 职场文书
2016年党支部公开承诺书
2016/03/25 职场文书