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获得linux下所有挂载点(mount points)的方法
Apr 29 Python
Python中使用haystack实现django全文检索搜索引擎功能
Aug 26 Python
Python中django学习心得
Dec 06 Python
Django框架实现的简单分页功能示例
Dec 04 Python
Python3获取电脑IP、主机名、Mac地址的方法示例
Apr 11 Python
Python 装饰器@,对函数进行功能扩展操作示例【开闭原则】
Oct 17 Python
python多进程重复加载的解决方式
Dec 13 Python
在python shell中运行python文件的实现
Dec 21 Python
tensorflow 实现从checkpoint中获取graph信息
Feb 10 Python
基于FME使用Python过程图解
May 13 Python
OpenCV4.1.0+VS2017环境配置的方法步骤
Jul 09 Python
Tensorflow与RNN、双向LSTM等的踩坑记录及解决
May 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
基于MySQL到MongoDB简易对照表的详解
2013/06/03 PHP
PHP在不同页面间传递Json数据示例代码
2013/06/08 PHP
PHP中的session安全吗?
2016/01/22 PHP
JavaScript 基础知识 被自己遗忘的
2009/10/15 Javascript
JS写的贪吃蛇游戏(个人练习)
2013/07/08 Javascript
js正则表达式匹配数字字母下划线等
2015/04/14 Javascript
剖析Node.js异步编程中的回调与代码设计模式
2016/02/16 Javascript
AngularJS 2.0新特性有哪些
2016/02/18 Javascript
js实现简单的省市县三级联动效果实例
2016/02/18 Javascript
javascript基础语法——全面理解变量和标识符
2016/06/02 Javascript
JavaScript中this的四个绑定规则总结
2016/09/26 Javascript
promise处理多个相互依赖的异步请求(实例讲解)
2017/08/03 Javascript
es6 字符串String的扩展(实例讲解)
2017/08/03 Javascript
node-sass安装失败的原因与解决方法
2017/09/04 Javascript
django js 实现表格动态标序号的实例代码
2019/07/12 Javascript
[01:42:49]DOTA2-DPC中国联赛 正赛 iG vs PSG.LGD BO3 第一场 2月26日
2021/03/11 DOTA
Python中删除文件的程序代码
2011/03/13 Python
Python模块搜索路径代码详解
2018/01/29 Python
Python smtplib实现发送邮件功能
2018/05/22 Python
python mysql断开重连的实现方法
2019/07/26 Python
postman传递当前时间戳实例详解
2019/09/14 Python
解决Pycharm的项目目录突然消失的问题
2020/01/20 Python
解决导入django_filters不成功问题No module named 'django_filter'
2020/07/15 Python
python实现数字炸弹游戏
2020/07/17 Python
python 中关于pycharm选择运行环境的问题
2020/10/31 Python
CSS3为背景图设置遮罩并解决遮罩样式继承问题
2020/06/22 HTML / CSS
Mio Skincare中文官网:肌肤和身体护理
2016/10/26 全球购物
计算机应用专业毕业生求职信
2013/10/24 职场文书
中专生自我鉴定书范文
2013/12/28 职场文书
大型会议策划方案
2014/05/17 职场文书
违纪检讨书
2015/01/27 职场文书
感谢师恩主题班会
2015/08/17 职场文书
幼儿园2016年感恩节活动总结
2016/04/01 职场文书
Python绘制分类图的方法
2021/04/20 Python
使用Redis实现实时排行榜功能
2021/07/02 Redis
Mysql实现简易版搜索引擎的示例代码
2021/08/30 MySQL