Как использовать модуль glob в Python для поиска файлов по шаблону
Модуль glob
в Python — это мощный инструмент для поиска файлов и каталогов, соответствующих указанному шаблону. Он особенно полезен, когда вам нужно искать файлы с определенными расширениями или именами в каталоге. Эта статья покажет вам, как использовать модуль glob
для эффективного поиска файлов.
Введение в модуль glob
Модуль glob
предоставляет способ перечислить файлы и каталоги с использованием подстановочных знаков в стиле оболочки Unix. Это полезно для таких задач, как поиск файлов, пакетная обработка и т. д. Модуль включает функции, которые позволяют сопоставлять имена файлов с шаблонами, что упрощает управление файлами.
Базовое использование glob
Чтобы использовать модуль glob
, вам нужно импортировать его, а затем использовать функцию glob.glob()
для поиска файлов, соответствующих шаблону. Шаблоны, которые вы используете, могут включать подстановочные знаки, такие как *
(соответствует любому количеству символов) и ?
(соответствует одному символу).
Примеры
Поиск файлов с определенным расширением
Например, чтобы найти все файлы с расширением .txt
в каталоге, можно использовать:
import glob
# Find all .txt files in the current directory
txt_files = glob.glob('*.txt')
print(txt_files)
Поиск файлов в подкаталоге
Чтобы найти все файлы с определенным расширением в подкаталоге, укажите подкаталог в шаблоне:
import glob
# Find all .jpg files in the 'images' subdirectory
jpg_files = glob.glob('images/*.jpg')
print(jpg_files)
Использование подстановочных знаков
Подстановочные знаки могут помочь вам сопоставить более широкий диапазон файлов. Например, чтобы найти все текстовые файлы, начинающиеся с "report":
import glob
# Find all files starting with 'report' and ending with .txt
report_files = glob.glob('report*.txt')
print(report_files)
Поиск файлов с несколькими расширениями
Вы также можете использовать glob
для поиска файлов с несколькими расширениями, используя шаблон, включающий несколько совпадений с подстановочными знаками:
import glob
# Find all .txt and .md files
files = glob.glob('*.txt') + glob.glob('*.md')
print(files)
Расширенное использование
В дополнение к простым шаблонам, модуль glob
поддерживает более сложные шаблоны. Например, вы можете использовать шаблоны типа **
для рекурсивного поиска в каталогах.
Рекурсивный поиск
Для рекурсивного поиска файлов во всех подкаталогах используйте шаблон **
вместе с аргументом recursive=True
:
import glob
# Find all .py files in the current directory and subdirectories
py_files = glob.glob('**/*.py', recursive=True)
print(py_files)
Заключение
Модуль glob
— это важный инструмент для управления файлами в Python, позволяющий вам легко искать файлы, используя шаблоны. Независимо от того, работаете ли вы с определенными типами файлов, ищете в каталогах или выполняете сложный поиск, glob
предоставляет простое и эффективное решение.