Bra*_*roy 5 python python-3.x pathlib
我看,在pathlib我们可以通过创建一个子路径/两个路径之间,其中一个逗号也会工作。但是,我不知道这两种情况是否有区别。在以下示例中,输出相同:
from pathlib import Path
p = Path('/hello', 'world')
s = Path(p, 'how', 'are', 'you')
ns = Path(p / 'how', 'are', 'you')
print(s)
print(ns)
Run Code Online (Sandbox Code Playgroud)
但考虑到它pathlib是面向对象的,我想幕后可能会有一些不同的东西。/与逗号相比,在 Path 中使用有区别吗?
/在pathlib.Path对象之间或Path对象与str对象之间使用运算符的全部意义在于,您可以避免将所有内容包装在对Path.
>>> from pathlib import Path
>>> p = Path('/hello', 'world')
>>> p / 'how'
PosixPath('/hello/world/how')
>>> p / 'how' / 'are' / 'you'
PosixPath('/hello/world/how/are/you')
Run Code Online (Sandbox Code Playgroud)
区别不在于使用“逗号”和 a/之间,而是 using/和构造函数之间的区别,Path。
我想,/应该类似于joinpath:
>>> p.joinpath('how','are','you')
PosixPath('/hello/world/how/are/you')
Run Code Online (Sandbox Code Playgroud)
但是在幕后的某个地方,您正在创建一个新Path实例,因此Path无论如何都会调用它。
请注意,来自文档:
当给出几个绝对路径时,最后一个作为锚点(模仿 os.path.join() 的行为):
所以他们都有这种行为:
>>> '/etc' / p / '/usr'
PosixPath('/usr')
>>> Path('/etc', p, '/usr')
PosixPath('/usr')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1842 次 |
| 最近记录: |