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
Was this helpful?