Следующие подстановочные знаки поддерживаются в шаблонах pattern для методов Path.full_match(), Path.glob() и Path.rglob():
'**' (весь сегмент): Соответствует любому количеству сегментов файла или каталога, включая ноль.'*' (весь сегмент): Соответствует одному сегменту файла или каталога.'*' (часть сегмента): Соответствует любому количеству символов, не являющихся разделителем, включая ноль.'?': Соответствует одному символу, не являющемуся разделителем.'[seq]': Соответствует одному символу в последовательности seq.'[!seq]': Соответствует одному символу, которого нет в последовательности seq.Для буквального соответствия, необходимо заключить метасимволы в квадратные скобки. Например,
'[?]'соответствует символу'?'.
Подстановочный знак '**' позволяет выполнять рекурсивный поиск в дереве каталогов. Несколько примеров:
'**/*' - Любой путь, содержащий хотя бы один сегмент.'**/*.py' - Любой путь, конечный сегмент которого заканчивается '.py'.'assets/**' Любой путь, начинающийся с 'assets/'.'assets/**/*' Любой путь, начинающийся с 'assets/', за исключением самого 'assets/'.Примечание. С помощью подстановочного знака '**' можно перейти к каждому каталогу в дереве (рекурсивно). Поиск в больших деревьях каталогов может занять много времени.
Изменено в Python 3.13: Шаблон, который заканчивается на “**”, возвращаются как файлы, так и каталоги. В предыдущих версиях возвращались только каталоги.
В Path.glob() и Path.rglob() к шаблону может быть добавлена косая черта в конце, чтобы соответствовать только каталогам.
Изменено в Python 3.11: Шаблон, который заканчивается разделителем компонентов пути. (
os.sepилиos.altsep), возвращает только каталоги.