glob

При работе с файлами в Python нам может понадобиться получить файлы на основе определенного шаблона. Модуль glob в Python предоставляет функции для создания списков файлов, соответствующих заданным шаблонам, таким как символы подстановки, и поддерживает рекурсивный поиск с помощью "**". Вот как мы можем импортировать модуль и использовать его:
import glob

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

Задача: Найти файлы .py

Как новый специалист по данным в технологическом стартапе, вы получили задачу организовать все файлы Python в вашем текущем проекте. Из-за спешки последних недель файлы Python (.py) разбросаны по всей текущей директории. Ваша задача — создать программу на Python, которая использует glob для списка всех файлов Python (.py), присутствующих в текущей директории. Однако, так как вас интересуют только имена файлов, а не их расположение, вывод должен содержать только имена файлов без пути к директории.
Программа не требует ввода данных.
Вывод программы должен содержать имена файлов Python в текущей директории, каждое имя на новой строке. Не включайте путь к директории в вывод. Вывод должен быть отсортирован в алфавитном порядке.
Ввод
Вывод
experiment.py file1.py file2.py main.py my_program.py
Обратите внимание, что так как программа запускается в текущей директории, вывод также будет включать файл main.py (который включает вашу программу).
 

Constraints

Time limit: 2 seconds

Memory limit: 512 MB

Output limit: 1 MB

To check your solution you need to sign in
Sign in to continue