OS Walk: обход файловой системы в операционной системе
os.walk() - это функция в модуле os, которая позволяет рекурсивно обходить директории и файлы в определенной папке. Она возвращает генератор, который генерирует кортежи, состоящие из пути к каталогу, списку подкаталогов в этом каталоге и списка файлов в этом каталоге.
Давайте рассмотрим пример использования os.walk() с некоторыми примерами кода.
import os
def print_files_and_dirs(root_dir):
for root, dirs, files in os.walk(root_dir): # проходимся по директории и получаем информацию о корневой директории, поддиректориях и файлах
print(f'Текущая директория: {root}')
print(f'Поддиректории: {dirs}')
print(f'Файлы: {files}')
print('--------------------')
# Пример 1
root_dir = '/путь/к/директории'
print_files_and_dirs(root_dir)
# Пример 2
current_dir = os.getcwd() # получаем текущую директорию
print_files_and_dirs(current_dir)
В примере выше мы определяем функцию print_files_and_dirs(root_dir), которая принимает путь к директории и использует os.walk() для обхода всех элементов внутри этой директории. Затем мы выводим информацию о каждой директории и файле, найденных в процессе обхода.
В первом примере мы явно указываем путь к директории, которую хотим просканировать. Во втором примере мы используем функцию os.getcwd(), чтобы получить текущую директорию, и обходим все элементы внутри нее.
Примерный вывод для первого примера:
Текущая директория: /путь/к/директории
Поддиректории: ['поддиректория1', 'поддиректория2']
Файлы: ['файл1.txt', 'файл2.txt', 'файл3.txt']
--------------------
Текущая директория: /путь/к/директории/поддиректория1
Поддиректории: []
Файлы: ['файл4.txt']
--------------------
Текущая директория: /путь/к/директории/поддиректория2
Поддиректории: []
Файлы: []
--------------------
Для каждой директории мы выводим информацию о текущей директории, поддиректориях и файлах внутри нее. Обратите внимание, что в поддиректории "поддиректория2" нет ни одного файла.
Это лишь один из множества способов использования os.walk() в вашем коде. Вы можете использовать его для поиска конкретных файлов, для предобработки данных, для копирования или удаления файлов и многого другого.
Надеюсь, этот развернутый ответ помог вам лучше понять, как использовать функцию os.walk() в вашем Python коде. Если у вас есть еще вопросы, не стесняйтесь задавать!