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