При работе с файлами в Python нам может понадобиться получить файлы на основе определенного шаблона. Модуль glob в Python предоставляет функции для создания списков файлов, соответствующих заданным шаблонам, таким как символы подстановки, и поддерживает рекурсивный поиск с помощью "**". Вот как мы можем импортировать модуль и использовать его:
import glob
txt_files = glob.glob('*.txt') # Получает все файлы .txt в текущей директории
print(txt_files, type(txt_files)) # Выводит список файлов .txt и их тип
Предположим, что в текущей директории есть три текстовых файла: file1.txt, file2.txt и file3.txt, вывод будет следующим:
Функция glob принимает шаблон как строку и возвращает список путей файлов и директорий, которые соответствуют шаблону.
В нашем предыдущем примере мы использовали символ подстановки *, который соответствует нулю или более символам. Таким образом, *.txt соответствует всем файлам, которые заканчиваются на .txt.
Мы также можем рекурсивно искать файлы в поддиректориях:
nested_files = glob.glob('**/*.txt', recursive=True) # Рекурсивно получает все файлы .txt
print(nested_files, type(nested_files)) # Выводит список файлов .txt и их тип
Предположим, что в дополнение к нашим предыдущим файлам у нас также есть folder1 в текущей директории, содержащая file4.txt и file5.txt, тогда вывод будет следующим:
Здесь мы использовали ** в нашем шаблоне. Этот символ в шаблоне пути обозначает все файлы и ноль или больше директорий и поддиректорий. Мы также использовали аргумент recursive=True, чтобы функция могла заглянуть в поддиректории. Поэтому, '**/*.txt', recursive=True получает все файлы .txt из текущей директории и ее поддиректорий.
Это полезный способ работать с путями к файлам и автоматизировать задачи по обработке файлов в Python.
Задача: Найти файлы .py
Как новый специалист по данным в технологическом стартапе, вы получили задачу организовать все файлы Python в вашем текущем проекте. Из-за спешки последних недель файлы Python (.py) разбросаны по всей текущей директории. Ваша задача — создать программу на Python, которая использует glob для списка всех файлов Python (.py), присутствующих в текущей директории. Однако, так как вас интересуют только имена файлов, а не их расположение, вывод должен содержать только имена файлов без пути к директории.
Программа не требует ввода данных.
Вывод программы должен содержать имена файлов Python в текущей директории, каждое имя на новой строке. Не включайте путь к директории в вывод. Вывод должен быть отсортирован в алфавитном порядке.