Осмотр файловой системы в Python (os.walk)
`os.walk()` в Python - это функция, которая позволяет обходить директории и их поддиректории и выполнять определенные действия для каждого файла или папки в процессе обхода дерева каталогов. Она используется для автоматизации задач, которые связаны с обработкой большого количества файлов или папок, например, переименовании файлов в директории с большим количеством подкаталогов.
Функция `os.walk()` принимает один аргумент - путь к директории, с которой нужно начать обход. Функция возвращает кортеж, содержащий три элемента:
- текущий каталог (строка)
- список подкаталогов текущего каталога (список строк)
- список файлов текущего каталога (список строк)
Пример использования `os.walk()`:
python
import os
# Обход всех файлов в директории и ее поддиректориях
for root, dirs, files in os.walk('/home/user/Downloads'):
for file in files:
# Полный путь к файлу
file_path = os.path.join(root, file)
# Вывод названия файла
print(file_path)
В этом примере `os.walk()` использован для обхода всех файлов в директории `/home/user/Downloads` и ее поддиректориях. Для каждого файла печатается его полный путь. `os.path.join()` используется для объединения текущего пути и названия файла в полный путь.
Также можно использовать `os.walk()` для переименования файлов:
python
import os
# Переименование всех файлов в директории и ее поддиректориях
for root, dirs, files in os.walk('/home/user/Downloads'):
for file in files:
# Полный путь к файлу
file_path = os.path.join(root, file)
# Новое название файла
new_file_name = file.replace('file', 'document')
new_file_path = os.path.join(root, new_file_name)
# Переименование файла
os.rename(file_path, new_file_path)
В этом примере `os.walk()` использован для переименования всех файлов в директории `/home/user/Downloads` и ее поддиректориях. Для каждого файла определяется новое название, где все вхождения строки "file" заменяются на "document". Затем используется `os.rename()` для переименования файла, заданного старым путем, в новый путь с новым названием.