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
, переходить ли по ссылкам.Функция 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)