pathlib

学习 Python 时,尤其是在进行文件操作和数据处理时,经常会处理路径问题。最常用和常见的是 os.path 模块,它将路径当做字符串进行处理,如果使用不当可能导致难以察觉的错误,而且代码很难跨平台复用。pathlib 就是一个非常棒的Python标准库,超级好用。

pathlib模块提供了一种在 POSIX 系统(如 Linux 和 Windows)下运行良好的高级抽象。pathlib 抽象了资源路径和资源命名结构,它把文件系统接口从os模块中隔离出来,将操作作为方法提供,使用更简单。

下面这张图,完美诠释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 的常用功能:

总结

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 标准库,彻底玩透路径操作的更多相关文章

  1. python第六天 函数 python标准库实例大全

    今天学习第一模块的最后一课课程--函数: python的第一个函数: 1 def func1(): 2 print('第一个函数') 3 return 0 4 func1() 1 同时返回多种类型时, ...

  2. Python标准库14 数据库 (sqlite3)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! Python自带一个轻量级的关系型数据库SQLite.这一数据库使用SQL语言.S ...

  3. python标准库00 学习准备

    Python标准库----走马观花 python有一套很有用的标准库.标准库会随着python解释器一起安装在你的电脑上的.它是python的一个组成部分.这些标准库是python为你准备的利器,可以 ...

  4. Python标准库:内置函数hasattr(object, name)

    Python标准库:内置函数hasattr(object, name) 本函数是用来判断对象object的属性(name表示)是否存在.如果属性(name表示)存在,则返回True,否则返回False ...

  5. python标准库xml.etree.ElementTree的bug

    使用python生成或者解析xml的方法用的最多的可能就数python标准库xml.etree.ElementTree和lxml了,在某些环境下使用xml.etree.ElementTree更方便一些 ...

  6. 【python】Python标准库defaultdict模块

    来源:http://www.ynpxrz.com/n1031711c2023.aspx Python标准库中collections对集合类型的数据结构进行了很多拓展操作,这些操作在我们使用集合的时候会 ...

  7. Python标准库

    Python标准库是随Python附带安装的,它包含大量极其有用的模块.熟悉Python标准库是十分重要的,因为如果你熟悉这些库中的模块,那么你的大多数问题都可以简单快捷地使用它们来解决. sys模块 ...

  8. Python标准库07 信号 (signal包,部分os包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在了解了Linux的信号基础之后,Python标准库中的signal包就很容易学习 ...

  9. Python标准库04 文件管理 (部分os包,shutil包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在操作系统下,用户可以通过操作系统的命令来管理文件,参考linux文件管理相关命令 ...

随机推荐

  1. 使用Token进行CSRF漏洞防御

    1.登录验证成功之后,在会话SESSION["user_token"]中保存Token. 2.在后台操作中,增删改表单中添加隐藏域hidden,设置value为Token. 3.提 ...

  2. Python 函数常用类型

    函数常用类型    无参数,无返回值    无参数,有返回值    有参数,无返回值    有参数,有返回值2.无参数,无返回值    无参数无返回值          def hello():    ...

  3. [cf1515I]Phoenix and Diamonds

    将$n$类物品按照价值为第一关键字(从大到小).质量为第二关键字(从小到大)排序,此时贪心策略即依次贪心选(排序后)第$i$类的物品(其中$i$从1到$n$) 为了方便,排序后第$i$类物品质量.价值 ...

  4. springboot访问静态资源404

    <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring- ...

  5. 统计学习1:朴素贝叶斯模型(Numpy实现)

    模型 生成模型介绍 我们定义样本空间为\(\mathcal{X} \subseteq \mathbb{R}^n\),输出空间为\(\mathcal{Y} = \{c_1, c_2, ..., c_K\ ...

  6. spring通过注解注册bean的方式+spring生命周期

    spring容器通过注解注册bean的方式 @ComponentScan + 组件标注注解 (@Component/@Service...) @ComponentScan(value = " ...

  7. python—模拟生成双色球号和大乐透号

    下边这个脚本,比较适合初级学习基本python语法用.但是,不精炼建议可参考https://www.cnblogs.com/Formulate0303/p/14031748.html的写法. 大乐透玩 ...

  8. 数据库命令补全工具mycli

    一.安装 我的数据库安装的是win版本,安装python后,直接命令行: 1 pip install mycli 即可. 二.使用 进入命令行后输入: 1 mycli -u root -p 88888 ...

  9. 13.Merge k Sorted Lists

    思路:利用map<int,vector<ListNode*> > 做值和指针的映射,最后将指针按值依次链接起来, 时间复杂度O(N),空间O(N) Merge k sorted ...

  10. mysql 实现某年单季度内的品牌TOPn销量在此年此单季度内销量占比

    数据表:       结果表: mysql语句: