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 相关文章推荐
使用Python3中的gettext模块翻译Python源码以支持多语言
Mar 31 Python
编写Python脚本批量下载DesktopNexus壁纸的教程
May 06 Python
python基础教程之匿名函数lambda
Jan 17 Python
浅析python递归函数和河内塔问题
Apr 18 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
简单了解python的内存管理机制
Jul 08 Python
Python3简单爬虫抓取网页图片代码实例
Aug 26 Python
python 表格打印代码实例解析
Oct 12 Python
python判断链表是否有环的实例代码
Jan 31 Python
TensorFlow MNIST手写数据集的实现方法
Feb 05 Python
Python基于paramunittest模块实现excl参数化
Apr 26 Python
Python 常用日期处理 -- calendar 与 dateutil 模块的使用
Sep 02 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
第八节 访问方式 [8]
2006/10/09 PHP
PHP 文件上传源码分析(RFC1867)
2009/10/30 PHP
第六章 php目录与文件操作
2011/12/30 PHP
无刷新动态加载数据 滚动条加载适合评论等页面
2013/10/16 PHP
php读取富文本的时p标签会出现红线是怎么回事
2014/05/13 PHP
Smarty局部缓存的几种方法简介
2014/06/17 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
微信公众平台开发教程②微信端分享功能图文详解
2019/04/10 PHP
prototype 的说明 js类
2006/09/07 Javascript
JS 文件大小判断的实现代码
2010/04/07 Javascript
JavaScript高级程序设计(第3版)学习笔记4 js运算符和操作符
2012/10/11 Javascript
JavaScript计时器示例分析
2015/02/05 Javascript
详解NodeJs支付宝移动支付签名及验签
2017/01/06 NodeJs
jQuery使用EasyUi实现三级联动下拉框效果
2017/03/08 Javascript
详谈javascript精度问题与调整
2017/07/08 Javascript
通过命令行创建vue项目的方法
2017/07/20 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
canvas轨迹回放功能实现
2017/12/20 Javascript
探索Vue高阶组件的使用
2018/01/08 Javascript
小程序自定义组件实现城市选择功能
2018/07/18 Javascript
JavaScript中作用域链的概念及用途讲解
2020/08/06 Javascript
python3中int(整型)的使用教程
2017/03/23 Python
python实现外卖信息管理系统
2018/01/11 Python
TensorFlow实现Softmax回归模型
2018/03/09 Python
关于Tensorflow中的tf.train.batch函数的使用
2018/04/24 Python
pycharm: 恢复(reset) 误删文件的方法
2018/10/22 Python
Numpy中对向量、矩阵的使用详解
2019/10/29 Python
Python操作Sonqube API获取检测结果并打印过程解析
2019/11/27 Python
tensorflow 报错unitialized value的解决方法
2020/02/06 Python
Django更新models数据库结构步骤
2020/04/01 Python
keras:model.compile损失函数的用法
2020/07/01 Python
法国家具及室内配件店:home24
2017/01/21 全球购物
澳大利亚排名第一的露营和户外设备在线零售商:Outbax
2020/05/06 全球购物
国际商务系学生个人的自我评价
2013/11/26 职场文书
三人合伙协议书范本
2014/10/29 职场文书
JavaScript如何利用Promise控制并发请求个数
2021/05/14 Javascript