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超简单解决约瑟夫环问题
May 12 Python
Python的Django中将文件上传至七牛云存储的代码分享
Jun 03 Python
python实现xlsx文件分析详解
Jan 02 Python
Python模拟简单电梯调度算法示例
Aug 20 Python
对Python3 解析html的几种操作方式小结
Feb 16 Python
python-itchat 获取微信群用户信息的实例
Feb 21 Python
Python实现监控Nginx配置文件的不同并发送邮件报警功能示例
Feb 26 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
在linux下实现 python 监控usb设备信号
Jul 03 Python
python自定义时钟类、定时任务类
Feb 22 Python
30行Python代码实现高分辨率图像导航的方法
May 22 Python
一行Python命令实现批量加水印
Apr 07 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
PHP中header用法小结
2016/05/23 PHP
PHP Filter过滤器全面解析
2016/08/09 PHP
详解php中 === 的使用
2016/10/24 PHP
详谈phpAdmin修改密码后拒绝访问的问题
2017/04/03 PHP
js类 from qq
2006/11/13 Javascript
与jquery serializeArray()一起使用的函数,主要来方便提交表单
2011/01/31 Javascript
jQuery EasyUI API 中文文档 - NumberSpinner数值微调器使用介绍
2011/10/21 Javascript
JavaScript子类用Object.getPrototypeOf去调用父类方法解析
2013/12/05 Javascript
javascript事件函数中获得事件源的两种不错方法
2014/03/17 Javascript
node.js中的http.response.setHeader方法使用说明
2014/12/14 Javascript
jQuery实现简易的天天爱消除小游戏
2015/10/16 Javascript
谈一谈JS消息机制和事件机制的理解
2016/04/14 Javascript
浅析jQuery Ajax通用js封装
2016/06/22 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
详解angularJs模块ui-router之状态嵌套和视图嵌套
2017/04/28 Javascript
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
解决vue接口数据赋值给data没有反应的问题
2018/08/27 Javascript
详解vuex状态管理模式
2018/11/01 Javascript
使用jQuery mobile NuGet让你的网站在移动设备上同样精彩
2019/06/18 jQuery
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python使用os模块和fileinput模块来操作文件目录
2016/01/19 Python
Windows环境下python环境安装使用图文教程
2018/03/13 Python
python利用pandas将excel文件转换为txt文件的方法
2018/10/23 Python
Python使用文件操作实现一个XX信息管理系统的示例
2020/07/02 Python
浅谈Python 命令行参数argparse写入图片路径操作
2020/07/12 Python
浅谈CSS3中display属性的Flex布局的方法
2017/08/14 HTML / CSS
美国隐形眼镜网:Major Lens
2018/02/09 全球购物
介绍下Lucene建立索引的过程
2016/03/02 面试题
战友聚会邀请函
2014/01/18 职场文书
原材料检验岗位职责
2014/03/15 职场文书
出生医学证明书
2014/09/15 职场文书
乡镇三严三实学习心得体会
2014/10/13 职场文书
房地产销售经理岗位职责
2015/02/02 职场文书
用 Python 定义 Schema 并生成 Parquet 文件详情
2021/09/25 Python