Метод os.walk() в Python
Методы работы с файлами/каталогами в Python OS
Обзор
Метод os.walk() используется для вывода имён файлов в каталоге путём обхода дерева каталогов — сверху вниз или снизу вверх.
Метод os.walk() — это простой и удобный итератор по файлам и каталогам, который помогает эффективно решать задачи с файлами и каталогами.
Работает на Unix и Windows.
Синтаксис
walk()Синтаксис метода следующий:
os.walk(top[, topdown=True[, onerror=None[, followlinks=False]]])
Parameters
-
top-- адрес каталога, который вы хотите обойти; возвращает тройку (root, dirs, files).
- root относится к адресу самой папки, которая в данный момент обходится.
- dirs — это список, содержащий имена всех каталогов в этой папке (исключая подкаталоги).
- files — это также список, содержащий имена всех файлов в этой папке (исключая подкаталоги).
topdowntopdown -- Необязательный. Если True, он отдаёт приоритет обходу верхнего каталога; в противном случае он отдаёт приоритет обходу подкаталогов top (включено по умолчанию). Если параметр topdown равен True, walk будет обходить верхнюю папку и каждый подкаталог в верхней папке.
onerroronerror -- Необязательный. Требует вызываемый объект, который будет вызван, когда walk встретит исключение.
followlinksfollowlinks -- Необязательный. Если True, он будет обходить фактические каталоги, на которые указывают ярлыки (символические ссылки в Linux) в каталоге (отключено по умолчанию). Если False, он отдаёт приоритет обходу подкаталогов top.
Возвращаемое значение
Возвращает генератор.
Пример
Следующий пример демонстрирует использование метода walk():
Пример
# -*- coding: UTF-8 -*-
import os
for root, dirs, files in os.walk(".", topdown=False):
for name in files:
print(os.path.join(root, name))
for name in dirs:
print(os.path.join(root, name))
Вывод вышеприведённой программы:
./.bash_logout ./amrood.tar.gz ./.emacs ./httpd.conf ./www.tar.gz ./mysql.tar.gz ./test.py ./.bashrc ./.bash_history ./.bash_profile ./tmp ./tmp/test.pyДругие расширения