Программа 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() в человекочитаемый вид.