Кто-нибудь может объяснить значение функции glob.glob () в python? - PullRequest
0 голосов
/ 20 марта 2019

Я пытаюсь понять это, читая документацию, но я до сих пор не понимаю разницу между recursive=True|False и почему мне нужно написать '*' или '**' в имени пути.

Ответы [ 3 ]

1 голос
/ 20 марта 2019

* - это подстановочный знак для имен файлов, вы можете пойти \path\*, чтобы получить все элементы в path или \path\*.txt, чтобы получить все текстовые файлы. Вы также можете использовать ? для подстановочного знака одного символа.

Если для recursive установлено значение true, ** действует как индикатор рекурсии, если вы используете \path\**\test?.*, он будет искать любой файл, который начинается с test и имеет один символ после (например, test1, test2 ) с любым расширением, внутри любой подпапки path рекурсивно (благодаря **).

0 голосов
/ 20 марта 2019

, если путь содержит только *, рекурсив бесполезен; если рекурсивный - False, ** не отличается от *. только если путь содержит ** и рекурсивное значение - True, ** будет соответствовать любым файлам.

0 голосов
/ 20 марта 2019

** имеет поведение рекурсивного сопоставления каталогов, когда recursive=True.

recursive=True необходимо для включения ON шаблона. В противном случае ** - это просто два отдельных *, каждый из которых соответствует нулю или более символов.

До недавнего времени модуль glob не поддерживал рекурсивное сопоставление, и существует много кода, который мог бы использовать ** в шаблонах, поэтому разработчики ядра Python не хотели ломать такой код.

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