You glob
pattern dir/**/*
подходит для рекурсивного сопоставления файлов в каталоге dir
и подкаталогах;вам нужно передать именованный аргумент recursive=True
:
glob.glob('dir/**/*', recursive=True)
Проблема в том, что без recursive=True
, glob
будет трактовать шаблон **
(рекурсивный глобус) как обычный *
(ноль или более символов) и будет соответствовать любым файлам в dir/<subdir>/
. Когда вы передаете параметр, **
обрабатывается специально, то есть как рекурсивный шаблон глобуса.
Кроме того, если ваша цель состоит в том, чтобы просто перебирать файлы, лучше использовать iglob
, чтобы получитьитератор вместо списка:
glob.iglob('dir/**/*', recursive=True)