为什么pathlib具有PurePath和Path?两者都一样吗?为什么是2?

时间:2019-08-05 03:22:18

标签: python-3.x pathlib

除了对这个问题的答案之外,我还试图学习如何理解Official Python Documentation

我了解到Path继承自PurePath,但是我无法理解何时使用PurePathPath而不是其中一个。 >

list of alternatives中,大多数建议Path,而有些人建议Pathlib

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

所以,为什么他们大多数使用PurePath和Path?他们为什么不建议使用Path.parent而不是PurePath.parent

1 个答案:

答案 0 :(得分:6)

pathlib documentation中的第一段指出:

路径类分为纯路径 concrete path ,纯路径在没有I / O的情况下提供纯计算操作,而具体路径从纯路径继承但也提供I / O操作。

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

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


总而言之,PurePath的作用类似于字符串(删除路径的一部分,与其他路径连接,获取父对象等)。要删除目录,搜索目录,创建文件或写入文件,必须使用Path对象。