Получение списка файлов в каталоге — распространенная задача, которая может быть использована во многих сценариях, от автоматизации задач до обработки данных. 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()
или более продвинутые методы для управления файлами. Знание этих методов и их правильное использование поможет вам в реализации множества задач, связанных с файловой системой.
Содержание: