Метод os.walk() в Python

Python File(文件) 方法Методы работы с файлами/каталогами в 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():

Пример

#!/usr/bin/python
# -*- 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

Python File(文件) 方法Методы работы с файлами/каталогами в Python OS

Другие расширения