Сообщить об ошибке.

Справка по языку шаблонов для операционной системы

Подстановочные знаки для шаблонов Path.glob() и Path.rglob()

Следующие подстановочные знаки поддерживаются в шаблонах 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), возвращает только каталоги.