首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Pathlib比OS 更好的路径库

你好,我是悦创。

在前面的 Python 办公自动化的文章中,我使用到了 Pathlib 这个库,接下来我们来看看这个库一些简单用法。

该模块提供表示文件系统路径的类,其语义适用于不同的操作系统。路径类被分为提供纯计算操作而没有 I/O 的 纯路径,以及从纯路径继承而来但提供 I/O 操作的 具体路径。

如果以前从未用过此模块,或不确定哪个类适合完成任务,那要用的可能就是 。它在运行代码的平台上实例化为 具体路径。

「在一些用例中纯路径很有用,例如:」

如果你想要在 Unix 设备上操作 Windows 路径(或者相反)。你不应在 Unix 上实例化一个 ,但是你可以实例化 。

你只想操作路径但不想实际访问操作系统。在这种情况下,实例化一个纯路径是有用的,因为它们没有任何访问操作系统的操作。

总结:纯路径就只有路径,具体路径看操作。

基础使用

「导入主类:」

「列出子目录:」

「iterdir():「遍历此目录中的文件。对于特殊路径 “」.」” 和 “「..」” 不会产生任何结果。

**is_dir():**此路径是否为目录。

「列出当前目录树下的所有 Python 源代码文件:」

「在目录树中移动:」

「查询路径的属性:」

**

纯路径

**纯路径对象提供了不实际访问文件系统的路径处理操作。**有三种方式来访问这些类,也是不同的风格:「classpathlib.PurePath(*pathsegments)」一个通用的类,代表当前系统的路径风格(实例化为 或者 ):

每一个pathsegments的元素可能是一个代表路径片段的字符串,一个返回字符串的实现了 接口的对象,或者另一个路径对象:

当pathsegments为空的时候,假定为当前目录:

当给出一些绝对路径,最后一位将被当作锚(模仿 的行为):

假斜线和单独的点都会被消除,但是双点 () 不会,以防改变符号链接的含义。

(一个很 naïve 的做法是让 等同于 ,如果 是一个指向其他目录的符号链接那么这个做法就将出错)纯路径对象实现了 接口,允许它们在任何接受此接口的地方使用。_在 3.6 版更改: _添加了 接口支持。classpathlib.PurePosixPath(*pathsegments)一个 的子类,路径风格不同于 Windows 文件系统:

pathsegments参数的指定和 相同。class(*pathsegments) 的一个子类,路径风格为 Windows 文件系统路径:

pathsegments参数的指定和 相同。无论你正运行什么系统,你都可以实例化这些类,因为它们提供的操作不做任何系统调用。

通用性质

路径是不可变并可哈希的。相同风格的路径可以排序与比较。这些性质尊重对应风格的大小写转换语义:

不同风格的路径比较得到不等的结果并且无法被排序:

更多知识点可以参考:https://docs.python.org/zh-cn/3/library/pathlib.html

把别人的顿悟,变成你的基本功

花半秒钟就看透事物本质的人,

和花一辈子都看不清的人,

注定是截然不同的命运。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210214A04B9W00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券