У меня странная проблема с python, когда я пытаюсь изменить значение поля «Дата изменения» в Windows. В частности, если я пишу в файл, а затем пытаюсь изменить его атрибут Date Modified, изменение завершается неудачно (Date Modified становится временем, когда я запускал скрипт python). Однако, если я не записываю в файл (если я закомментирую вызов функции out.write), время модификации даты будет правильно установлено на 11 / 2017.
Время доступа к дате установлено в обеих ситуациях, как и ожидалось.
Ниже мой код (python 2.7):
import os
import time
import datetime
out = open("out.test", "wb")
#comment out the write line to get this to work
out.write("hi")
out.flush()
out.close
fileLocation = "out.test"
year = 2017
month = 11
day = 5
hour = 19
minute = 50
second = 0
date = datetime.datetime(year=year, month=month, day=day, hour=hour, minute=minute, second=second)
modTime = time.mktime(date.timetuple())
os.utime(fileLocation, (modTime, modTime))
Интересно, что если я использую отдельный процесс python (то есть запускаю python в другом приглашении cmd) для изменения даты изменения, это также работает.
Есть ли какая-то другая функция, похожая на сброс, которую мне нужно вызвать, чтобы правильно установить время изменения даты, если я запишу в файл?
Заранее спасибо.