为什么 pathlib 有 PurePath 和 Path?

use*_*349 14 python-3.x pathlib

不仅仅是对问题的回答,我还试图学习如何理解 官方 Python 文档

我知道Path继承自PurePath,但我无法理解何时使用哪个以及为什么有PurePath&Path而不是一个。

备选方案列表中,大多数是建议,Path而有些是建议Pathlib

我在看os.path.dirname()他们建议的地方PurePath.parent。但是当我运行pathlib.PurePath(file).parent.name&时,我得到了相同的结果pathlib.Path(file).parent.name

那么,为什么他们使用PurePathfor some & Pathfor most。为什么他们不建议Path.parent而不是PurePath.parent

Din*_*har 15

pathlib 文档中的第一段指出:

路径类分为纯路径和具体路径,纯路径提供没有 I/O 的纯计算操作,而具体路径继承自纯路径,但也提供 I/O 操作。

纯路径对象提供实际上并不访问文件系统的路径处理操作。

具体路径纯路径类的子类。除了前者(纯路径)提供的操作之外,它们还提供对路径对象进行系统调用的方法。


总之,PurePath其行为类似于字符串(删除路径的一部分、与另一个路径连接、获取父路径等)。要删除目录、搜索目录、创建文件或写入文件,必须使用Pathobject.

  • 通常,(I/O 操作的)示例有助于让我明白这一点,谢谢 (3认同)