Как работает модуль fnmatch с масками в python

Как работает модуль fnmatch с масками в python

Опубликовано: 12.04.2025

Модуль fnmatch в Python позволяет сравнивать имена файлов и строки с шаблонами, используя символы подстановки, такие как звёздочка (*) и вопросительный знак (?). Это полезно для поиска файлов, соответствующих определённому шаблону, или для фильтрации строк по определённым критериям.


Импорт модуля fnmatch


import fnmatch

Основные функции

Модуль fnmatch предоставляет две основные функции:

  1. fnmatch.fnmatch(filename, pattern) — сравнивает имя файла с заданным шаблоном и возвращает True, если они совпадают, иначе False.
  2. fnmatch.filter(names, pattern) — возвращает список имен файлов, которые соответствуют заданному шаблону.

Использование функции fnmatch.fnmatch

Обратите внимание, что символ * заменяет любое количество символов, а символ ? заменяет только один символ.

Пример использования функции fnmatch.fnmatch:


import fnmatch
filename = 'example.txt'
pattern = '*.txt'
result = fnmatch.fnmatch(filename, pattern)
print(result)  # Вывод: True

Использование функции fnmatch.filter

Пример использования функции fnmatch.filter:


files = ['example.txt', 'test.py', 'image.jpg']
pattern = '*.txt'
result = fnmatch.filter(files, pattern)
print(result)  # Вывод: ['example.txt']

В этом примере мы получаем список файлов, соответствующих заданному шаблону.

Использование диапазонов символов

Также можно использовать диапазоны символов в квадратных скобках [] для более точного совпадения:


filename = 'example1.txt'
pattern = 'example[0-9].txt'
result = fnmatch.fnmatch(filename, pattern)
print(result)  # Вывод: True

В этом примере шаблон соответствует именам файлов, содержащим любую цифру от 0 до 9.


Вам могут быть интересны материалы:

Серия работ "Стулья Дизайнеров и художников"

Серия творческих работ на тему: «Стулья». В данной серии работ представлены стулья, в которых я постарался передать какие-либо особенности известных дизайнеров и художников, задавшись вопросом, какие стулья сделали бы они сейчас? Или какой стул бы сейчас им понравился?

В чём отличие пакета от модуля в Python?

Как вы, возможно знаете, код на Python хранится в модулях (modules) и пакетах (packages). Давайте немного разберемся с ними по подробнее.

С какими проблемами сталкиваются дети, изучая компьютерные технологии?

Компьютер и мобильный телефон современные дети осваивают очень легко. Базовые навыки работы с операционной системой дети получают уже в 4-6 лет. А уже начиная с 10 лет современные школьники проводят продолжительное время за компьютерами и мобильными телефонами. Родители полагают, что такой богатый опыт информационной деятельности даст хороший старт их детям, при изучении программирования в кружке. К сожалению, часто это не так.


Наш сайт использует куки.
Пользуясь сайтом вы соглашаетесь
на обработку персональных данных.
Согласиться и закрыть это окно - нажмите «ОК».
OK