为什么 python pathlib Path('').exists() 返回 True?

新手上路,请多包涵

我期待 Path('') 是一个不存在的路径,因为它不对应于文件或目录名称。为什么认为这是存在的?

 from pathlib import Path

print(Path('').exists())

我假设通过将 --- 定义为与 Path('') 相同 Path('.') 。在什么情况下有优势?

原文由 mattm 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 740
1 个回答

正如其他人所说,它解析为当前路径并因此存在,但这就是原因,

pathlib.Path 实际上pathlib.PurePath 的子类,当 pathsegments (参数)为空(相当于 '' )时,它假定当前目录。

你可以像这样凭经验证明,

 from pathlib import PurePath
print(PurePath())
>>>> .

我假设通过将 Path(“) 定义为与 Path(‘.’) 相同可以获得优势。

正确的。尽管我不是该库的创建者,但我认为这是出于语法和逻辑原因。事实上,人们经常希望引用当前目录来动态计算某些东西。因此,出于同样的原因 . 指向当前目录,lib创建者可能想让你这样写,

 >>>> p = Path() # or possibly Path('.')
>>> [x for x in p.iterdir() if x.is_dir()]

那将列出子目录。

基本上,将其视为 默认值。逻辑上 Path() 返回的默认路径是当前目录。因此,从逻辑上讲,空字符串值应该具有相同的行为。

原文由 scharette 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题