Сообщить об ошибке.

Функция utime() модуля os в Python

Изменить время доступа и модификации файла

Синтаксис:

import os

os.utime(path, times=None, *, [ns, ]dir_fd=None, follow_symlinks=True)

Параметры:

  • path - str, путь в файловой системе до файла,
  • times=None - кортеж в форме (atime, mtime)
  • ns - кортеж в форме (atime_ns, mtime_ns),
  • dir_fd=None - int, дескриптор каталога,
  • follow_symlinks=True - bool, переходить ли по ссылкам.

Возвращаемое значение:

  • None

Описание:

Функция utime() модуля os устанавливает/изменяет время доступа к файлу и время изменения файла, указанного в path.

Аргумент path может принимать объекты, представляющие путь файловой системы, такие как pathlib.PurePath.

Функция os.utime() принимает два необязательных параметра: times и ns. Они определяют время, которое устанавливается на файл и используются следующим образом:

  • Если указано ns, то это должен быть двойной кортеж в форме (atime_ns, mtime_ns), где каждый член является целым числом, выражающим наносекунды.
  • Если times не равно None, то это должен двойной кортеж в форме (atime, mtime), где каждый член является целым числом или float в секундах.
  • Если times равно None, а ns не указано, то это эквивалентно указанию ns=(atime_ns, mtime_ns), где оба элемента - текущее время.
  • Указывать кортежи как для times, так и для ns - это ошибка.

Обратите внимание, что точное время, установленное здесь, может не быть возвращено последующим вызовом функцией os.stat(), в зависимости от разрешения, с которым ваша операционная система записывает время доступа и изменения. Лучший способ сохранить точное время - это использовать поля st_atime_ns и st_mtime_ns из объекта результата os.stat() с параметром ns для utime.

Эта функция может поддерживать указание дескриптора файла и пути относительно дескрипторов каталога и может не следовать символическим ссылкам follow_symlinks=False.

Вызывает событие аудита os.utime с аргументами path, times, ns, dir_fd.

Примеры использования:

>>> import os, time
>>> f = 'test_utime.txt'
>>> fp = open(f, 'w')
>>> fp.write('content')
>>> fp.close()
>>> atime = os.stat(f).st_atime
>>> mtime = os.stat(f).st_mtime
>>> print(time.ctime(atime), time.ctime(mtime))
# Thu Mar 19 12:20:05 2020, Thu Mar 19 12:20:14 2020

# изменим время
>>> delta = 60*60*24*15
>>> new_atime = atime - delta
>>> new_mtime = mtime - delta
>>> os.utime(f, times=(new_atime, new_mtime))
>>> atime = os.stat(f).st_atime
>>> mtime = os.stat(f).st_mtime
>>> print(time.ctime(atime), time.ctime(mtime))
# Wed Mar  4 12:20:05 2020, Wed Mar  4 12:20:14 2020

# Очистка
>>> os.unlink(f)