Помимо работы с путями, 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