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连接MySQL、MongoDB、Redis、memcache等数据库的方法
Nov 15 Python
在Python中使用异步Socket编程性能测试
Jun 25 Python
浅谈python装饰器探究与参数的领取
Dec 01 Python
如何实现删除numpy.array中的行或列
May 08 Python
分析python请求数据
Aug 19 Python
Django框架中间件(Middleware)用法实例分析
May 24 Python
python二维码操作:对QRCode和MyQR入门详解
Jun 24 Python
执行Django数据迁移时报 1091错误及解决方法
Oct 14 Python
浅谈spring boot 集成 log4j 解决与logback冲突的问题
Feb 20 Python
python3 deque 双向队列创建与使用方法分析
Mar 24 Python
Python 打印自己设计的字体的实例讲解
Jan 04 Python
python爬虫--selenium模块
Mar 31 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中实现接收多个name相同但Value不相同表单数据实例
2015/02/03 PHP
thinkphp实现把数据库中的列的值存到下拉框中的方法
2017/01/20 PHP
jquery UI 1.72 之datepicker
2009/12/29 Javascript
JavaScript window.location对象
2014/11/14 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JS如何实现文本框随文本的长度而增长
2015/07/30 Javascript
基于jquery实现页面滚动时顶部导航显示隐藏
2020/04/20 Javascript
JS模态窗口返回值兼容问题的完美解决方法
2016/05/28 Javascript
基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortable进行拖动排序)
2016/08/29 Javascript
JavaScript递归操作实例浅析
2016/10/31 Javascript
JS常用倒计时代码实例总结
2017/02/07 Javascript
利用node.js爬取指定排名网站的JS引用库详解
2017/07/25 Javascript
vue项目总结之文件夹结构配置详解
2017/12/13 Javascript
Angular实现点击按钮后在上方显示输入内容的方法
2017/12/27 Javascript
Vue.js实现数据响应的方法
2018/08/13 Javascript
小程序如何在不同设备上自适应生成海报的实现方法
2019/08/20 Javascript
Node.js API详解之 util模块用法实例分析
2020/05/09 Javascript
Python按行读取文件的简单实现方法
2016/06/22 Python
Python爬虫之正则表达式基本用法实例分析
2018/08/08 Python
python使用PIL和matplotlib获取图片像素点并合并解析
2019/09/10 Python
Html5 Canvas动画基础碰撞检测的实现
2018/12/06 HTML / CSS
SteelSeries赛睿官网:游戏外设和配件的领先制造商(耳机、键盘、鼠标和鼠标垫)
2018/06/17 全球购物
IdealFit官方网站:女性蛋白质、补充剂和运动服装
2019/03/24 全球购物
购买原创艺术品:Zatista
2019/11/09 全球购物
经典c++面试题二
2015/08/14 面试题
META-INF文件夹中的MANIFEST.MF的作用
2016/06/21 面试题
毕业生的自我评价分享
2013/12/18 职场文书
个人自我剖析材料
2014/02/07 职场文书
物控部经理职务说明书
2014/02/25 职场文书
《月光启蒙》教学反思
2014/03/01 职场文书
投资合作意向书范本
2015/05/08 职场文书
律政俏佳人观后感
2015/06/09 职场文书
幼儿园元旦主持词
2015/07/06 职场文书
小学大队干部竞选稿
2015/11/20 职场文书
Python中快速掌握Data Frame的常用操作
2021/03/31 Python
Python Matplotlib绘制两个Y轴图像
2022/04/13 Python