Получение информации о файле

Помимо работы с путями, os.path включает функции для получения свойств файла, а именно:

  • os.path.getatime(path) - возвращает время последнего доступа к файлу или каталогу, указанному в path. Возвращаемое значение представляет собой число типа float, указывающее количество секунд с начала эпохи Unix (смотрите модуль time).

  • os.path.getmtime(path) - возвращает время последней модификации файла или каталога, указанному в path. Возвращаемое значение представляет собой число типа float, указывающее количество секунд с начала эпохи Unix (смотрите модуль time).

  • os.path.getctime(path) - возвращает время, которое в некоторых системах, например Unix, является временем последнего изменения метаданных, а в Windows - временем создания файла или каталога, указанного в path. Возвращаемое значение представляет собой число типа float, указывающее количество секунд с начала эпохи Unix (смотрите модуль time).

У всех трех функций одинаковы тип возвращаемого значения - float, обозначающее количество секунд, прошедших с начала эпохи:

import os

print('File         :', __file__)
print('Access time  :', os.path.getatime(__file__))
print('Modified time:', os.path.getmtime(__file__))
print('Change time  :', os.path.getctime(__file__))

В результате получим следующий ответ:

File         : /Volumes/Mac SSD/Project/PyHub/os_project/main.py
Access time  : 1730213434.0
Modified time: 1730546778.76
Change time  : 1730546778.76

В примере выше мы получаем информацию о текущем модуле, из которого запущена наша программа.  Для этого мы используем специальную переменную __file__. Обратите внимание, что информация о времени доступа и изменений файла отображается в виде вещественного числа. Для преобразования данного значений в объект времени необходимо воспользоваться функцией ctime из модуля time.

import os
import time

print('File         :', __file__)
print('Access time  :', time.ctime(os.path.getatime(__file__)))
print('Modified time:', time.ctime(os.path.getmtime(__file__)))
print('Change time  :', time.ctime(os.path.getctime(__file__)))

Получим следующий результат:

File         : /Volumes/Mac SSD/Project/PyHub/os_project/main.py
Access time  : Tue Oct 29 17:50:34 2024
Modified time: Sat Nov  2 14:27:56 2024
Change time  : Sat Nov  2 14:27:56 2024

Добавим еще вызов функции os.path.getsize(path), которая возвращает размер файла в байтах, и получим практически исчерпывающую информацию о файле.

import os
import time

print('File         :', __file__)
print('Access time  :', time.ctime(os.path.getatime(__file__)))
print('Modified time:', time.ctime(os.path.getmtime(__file__)))
print('Change time  :', time.ctime(os.path.getctime(__file__)))
print('Size         :', os.path.getsize(__file__))

Получим размер текущего файла:

File         : /Volumes/Mac SSD/Project/PyHub/os_project/main.py
Access time  : Tue Oct 29 17:50:34 2024
Modified time: Sat Nov  2 14:28:58 2024
Change time  : Sat Nov  2 14:28:58 2024
Size         : 299

Все перечисленные в этом разделе функции, а должны принимать путь к существующему файлу. В случае отсутствия файла на диске произойдет исключение FileNotFoundError

Перейти к следующему шагу

Комментарии