Программа Python для получения даты создания и изменения файла
В этом примере покажем, как получить время последнего изменения и время создания/изменения метаданных файла.
Что нужно знать
Пример 1. Через модуль os
import os.path, time
file = pathlib.Path('abc.py')
print("Last modification time: %s" % time.ctime(os.path.getmtime(file)))
print("Last metadata change time or path creation time: %s" % time.ctime(os.path.getctime(file)))
Вывод
Last modification time: Mon Apr 12 10:43:24 2020
Last metadata change time or path creation time: Mon Apr 12 10:43:24 2020
getmtime() возвращает время последнего изменения содержимого файла. getctime() на Linux/Unix даёт время последнего изменения метаданных, а на Windows — время создания файла.
Пример 2. Через метод stat()
import datetime
import pathlib
fname = pathlib.Path('abc.py')
print("Last modification time: %s" % datetime.datetime.fromtimestamp(fname.stat().st_mtime))
print("Last metadata change time or path creation time: %s" % datetime.datetime.fromtimestamp(fname.stat().st_ctime))
Вывод
Last modification time: 2021-04-12 10:43:24.234189
Last metadata change time or path creation time: 2021-04-12 10:43:24.234189
Аналогично первому примеру: st_mtime — время последнего изменения, st_ctime — время последнего изменения метаданных на Linux/Unix или время создания на Windows.
Как это работает
Оба способа обращаются к одному и тому же системному вызову (stat) и берут оттуда метки времени. Модуль os.path даёт готовые функции-обёртки и возвращает timestamp. Модуль pathlib отдаёт структуру stat_result, поля которой удобно конвертировать через datetime.fromtimestamp() в человекочитаемый вид.