你好,我是悦创。
在前面的 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
把别人的顿悟,变成你的基本功
花半秒钟就看透事物本质的人,
和花一辈子都看不清的人,
注定是截然不同的命运。
领取专属 10元无门槛券
私享最新 技术干货