stat

Интерпретация результатов os.stat ()

Модуль stat определяет константы и функции для интерпретации результатов os.stat (), os.fstat () и os.lstat () (если они существуют). Для получения полной информации о вызовах stat (), fstat () и lstat () обратитесь к документации для вашей системы.

Изменено в версии 3.4: модуль stat поддерживается реализацией C.

Модуль stat определяет следующие функции для проверки определенных типов файлов:

  • stat.S_ISDIR (mode) - возвращает ненулевое значение, если mode является каталогом

  • stat.S_ISCHR (mode)

  • stat.S_ISBLK (mode)

  • stat.S_ISREG (mode) - возвращает ненулевое значение, если mode является обычным файлом

  • не заполнено...

Обычно вы используете функции os.path.is* () для проверки типа файла; приведенные здесь функции полезны, когда вы выполняете несколько тестов одного и того же файла и хотите избежать накладных расходов на системный вызов stat () для каждого теста. Они также полезны при проверке информации о файле, который не обрабатывается os.path, например при проверке блочных и символьных устройств.

Пример:

import os, sys
from stat import *

def walktree(top, callback):
    '''рекурсивно спускается по дереву каталогов с корнем вверху,
    исполняет функции обратного вызова для каждого обычного файла'''

    for f in os.listdir(top):
        pathname = os.path.join(top, f)
        mode = os.stat(pathname).st_mode
        if S_ISDIR(mode):
            # Это каталог, заходим в него
            walktree(pathname, callback)
        elif S_ISREG(mode):
            # Это файл, вызываем функцию обратного вызова
            callback(pathname)
        else:
            # Неизвестный тип файла, печатаем сообщение
            print('Skipping %s' % pathname)

def visitfile(file):
    print('visiting', file)

if __name__ == '__main__':
    walktree(sys.argv[1], visitfile)

Предоставляет дополнительную служебную функцию для преобразования режима файла в удобочитаемую строку:

  • stat.filemode ()

Все перечисленные ниже переменные - это просто символические индексы в кортеже из 10, возвращаемом os.stat (), os.fstat () или os.lstat ().

  • stat.ST_MODE - режим защиты inode

  • не заполнено...

  • stat.ST_SIZE - размер простого файла в байтах; количество данных, ожидающих некоторых специальных файлов

  • не заполнено...

Last updated