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模块概念
Jan 11 Python
用python实现k近邻算法的示例代码
Sep 06 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
May 29 Python
12个步骤教你理解Python装饰器
Jul 01 Python
Python随机函数库random的使用方法详解
Aug 21 Python
浅析Python+OpenCV使用摄像头追踪人脸面部血液变化实现脉搏评估
Oct 17 Python
python tqdm 实现滚动条不上下滚动代码(保持一行内滚动)
Feb 19 Python
python实现快递价格查询系统
Mar 03 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
python3 中时间戳、时间、日期的转换和加减操作
Jul 14 Python
Python爬取微信小程序Charles实现过程图解
Sep 29 Python
pandas时间序列之pd.to_datetime()的实现
Jun 16 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多文件上传类实例
2015/03/07 PHP
深入解析PHP中foreach语句控制数组循环的用法
2015/11/30 PHP
js 方法实现返回多个数据的代码
2009/04/30 Javascript
jQuery 扩展对input的一些操作方法
2009/10/30 Javascript
JavaScript字符串插入、删除、替换函数使用示例
2013/07/25 Javascript
jquery实现弹出层完美居中效果
2014/03/03 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
JS/Jquery判断对象为空的方法
2015/06/11 Javascript
理解javascript中的with关键字
2016/02/15 Javascript
javascript js 操作数组 增删改查的简单实现
2016/06/20 Javascript
NodeJS远程代码执行
2016/08/28 NodeJs
Node.js中文件操作模块File System的详细介绍
2017/01/05 Javascript
vue组件如何被其他项目引用
2017/04/13 Javascript
各种选择框jQuery的选中方法(实例讲解)
2017/06/27 jQuery
Angular.js中数组操作的方法教程
2017/07/31 Javascript
Angular4 组件通讯方法大全(推荐)
2018/07/12 Javascript
浅谈关于JS下大批量异步任务按顺序执行解决方案一点思考
2019/01/08 Javascript
vue.js 解决v-model让select默认选中不生效的问题
2020/07/28 Javascript
使用JavaScript和MQTT开发物联网应用示例解析
2020/08/07 Javascript
[01:03:27]Optic vs VGJ.S 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
python使用datetime模块计算各种时间间隔的方法
2015/03/24 Python
python中pandas.DataFrame对行与列求和及添加新行与列示例
2017/03/12 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
python实现汉诺塔算法
2021/03/01 Python
Django 框架模型操作入门教程
2019/11/05 Python
python获取栅格点和面值的实现
2020/03/10 Python
Python环境使用OpenCV检测人脸实现教程
2020/10/19 Python
英语专业毕业生自我鉴定
2013/11/09 职场文书
汽车运用工程系毕业生自荐信
2013/12/27 职场文书
薪酬专员岗位职责
2014/02/18 职场文书
小学生三分钟演讲稿
2014/08/18 职场文书
前台接待岗位职责
2015/02/03 职场文书
资料员岗位职责
2015/02/10 职场文书
员工福利申请报告
2015/05/15 职场文书
赤壁观后感(2)
2015/06/15 职场文书
go goth封装第三方认证库示例详解
2022/08/14 Golang