Как pathlib glob () обрабатывает несуществующие и недопустимые пути? - PullRequest
0 голосов
/ 30 июня 2019

Допустим, у меня есть путь к несуществующему каталогу:

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

или даже совершенно неверный путь:

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

Если я позвоню dirpath.glob('whatever'), может произойти одно из двух:

  1. Может выдать исключение (FileNotFoundError / OSError)
  2. Может дать 0 результатов

Документация , конечно, не содержит никакой информации об этом. Итак, как обрабатывает Path.glob() несуществующие и недопустимые пути?

1 Ответ

1 голос
/ 30 июня 2019

Это даст 0 результатов, и я думаю, что документы соответствуют этому поведению, говоря:

Перетащите указанный относительный шаблон в каталог, представленный этим путем, получив все соответствующие файлы (любого типа).)

вполне допустимо, чтобы значение "all" также было равно 0.

, так же как встроенный all обрабатывает пустую итерацию:

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]: 

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...