Несоответствие между временем создания файла и текущим временем в Python - PullRequest
0 голосов
/ 17 декабря 2018

Почему время создания файла меньше времени, измеренного до его создания?

import os, time

before_creation = time.time()

with open('my_file', 'w') as f:
    f.write('something')

creation_time = os.stat('my_file').st_ctime

print(before_creation)  # 1545031532.8819697
print(creation_time)    # 1545031532.8798425
print(before_creation < creation_time)  # False

Редактировать Операционная система Linux

1 Ответ

0 голосов
/ 17 декабря 2018
  • Поскольку модуль ОС из CPython и изначально разработан для версий Python 2.x.Если вы запускаете свой код в версии 2.7, он возвращает одно и то же значение для before_creation и creation_time.Так как результат ограничен двумя десятичными знаками только в версии 2.x.
    eg., 1545073155.03
  • Кроме того, вы должны отметить, что когда вы делаете print(os.stat('my_file')), мы получаем
    posix.stat_result(st_mode=33204, st_ino=12, st_dev=1792, st_nlink=1, st_uid=488, st_gid=487, st_size=0, st_atime=1545073155, st_mtime=1545073155, st_ctime=1545073155)
  • И если вы делаете print(os.stat('my_file')[9]), мы получаем 1545073155
    Что касается решения, вам, возможно, придется использовать time.time (), чтобы получить время после создания.
    Учитывая это, при преобразовании int в float типа st_ctime может быть ошибка.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...