Як використовувати модуль Python glob для пошуку файлів за шаблоном

Модуль 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 пропонує просте та ефективне рішення.