
Получение списка файлов в каталоге — распространенная задача, которая может быть использована во многих сценариях, от автоматизации задач до обработки данных. Python предлагает несколько способов выполнения этой задачи с помощью встроенных модулей, таких как os и pathlib. Здесь мы рассмотрим, как эффективно получать списки файлов, фильтровать их по различным критериям и обрабатывать подкаталоги.
Модуль os в Python включает функцию os.listdir(), которая возвращает список имен файлов и каталогов в указанном пути.
import os
# Получение списка файлов в каталоге
files = os.listdir("/path/to/directory")
print(files)Этот код выведет список всех файлов и каталогов в "/path/to/directory".
Модуль pathlib предоставляет более современный и объектно-ориентированный подход к работе с файловыми путями.
from pathlib import Path
# Использование Path.iterdir() для получения файлов
path = Path("/path/to/directory")
files = [file for file in path.iterdir() if file.is_file()]
print(files)Здесь path.iterdir() итерируется по всем объектам в каталоге, а file.is_file() проверяет, является ли объект файлом.
Иногда требуется получить только файлы определенного типа или соответствующие определенному шаблону.
# Фильтрация файлов по расширению
txt_files = [file for file in path.iterdir() if file.suffix == '.txt']
print(txt_files)Для получения файлов не только из каталога, но и из всех его подкаталогов, можно использовать os.walk() или Path.rglob().
# Использование os.walk()
for root, dirs, files in os.walk("/path/to/directory"):
for file in files:
print(os.path.join(root, file))
# Использование Path.rglob()
for file in path.rglob('*'):
print(file)PermissionError или FileNotFoundError.Python предлагает мощные и гибкие инструменты для получения и обработки списка файлов в каталоге. В зависимости от ваших потребностей, вы можете использовать os.listdir(), pathlib.Path.iterdir() или более продвинутые методы для управления файлами. Знание этих методов и их правильное использование поможет вам в реализации множества задач, связанных с файловой системой.
Содержание: