pathlib的glob()如何处理不存在和无效的路径?

时间:2019-06-30 08:36:46

标签: python glob pathlib

说我有一个不存在的目录的路径:

dirpath = Path("this/directory/doesnt/exist")

甚至是完全无效的路径:

dirpath = Path(r"D:\:$`~[]*/'/..")

如果我打电话给dirpath.glob('whatever'),可能会发生以下两种情况之一:

  1. 它可以引发异常(FileNotFoundError / OSError
  2. 它可以产生0个结果

documentation当然不包含有关此的任何信息。那么, Path.glob()如何处理不存在和无效的路径?

1 个答案:

答案 0 :(得分:1)

它将产生0个结果,我认为文档通过说出以下内容来匹配此行为:

  

在此路径表示的目录中遍历给定的相对模式,产生所有匹配的文件(任何类型)

“ all”也可以为0也可以。

就像内置all对待一个空的Iterable一样:

In [1]: all([])
Out[1]: True

一个简单的实验可以确认:

In [1]: from pathlib import Path

In [2]: dirpath = Path("this/directory/doesnt/exist")

In [3]: glob_result = dirpath.glob("*")

In [4]: type(glob_result)
Out[4]: generator

In [5]: list(glob_result)
Out[5]: []

In [6]: