Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
||
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[18.97.9.171] |
|
Сообщ.
#1
,
|
|
|
Здравствуйте!
Нашел в интернете следующие способы определения времени создания, модификации и последнего доступа к файлу: import os import stat import datetime file_path = "V:/TestPrograms/Файл-даты создания и модификации.txt" create_time = os.path.getctime(file_path) formatted_time = datetime.datetime.fromtimestamp(create_time) print("Date created: ", formatted_time) modTimesinceEpoc = os.path.getmtime(file_path) modificationTime = datetime.datetime.fromtimestamp(modTimesinceEpoc).strftime('%Y-%m-%d %H:%M:%S') print("Last Modified Time : ", modificationTime ) fileStatsObj = os.stat ( file_path ) # Get last access time accessTime = datetime.datetime.ctime ( fileStatsObj [ stat.ST_ATIME ] ) #accessTime = datetime.time.ctime ( fileStatsObj [ stat.ST_ATIME ] ) print ("Last Access Time : ", accessTime ) File "E:\MyProgramming\pyPyCharm\.venv\Scripts\TestPy.py", line 15, in <module> accessTime = datetime.datetime.ctime ( fileStatsObj [ stat.ST_ATIME ] ) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ TypeError: descriptor 'ctime' for 'datetime.datetime' objects doesn't apply to a 'int' object Date created: 2023-07-19 14:54:31.423644 Last Modified Time : 2023-07-19 15:00:00 Process finished with exit code 1 Прикреплённый файлFile.7z (323 байт, скачиваний: 19) |
Сообщ.
#2
,
|
|
|
Я в питоне ещё пока сильно не поднаторел, но обычно делаю так:
копирую полный текст ошибки в поиск в гугле. и частенько нахожу решение в тырнете. на твой вопрос решение может быть тут https://stackoverflow.com/questions/6643149...esnt-apply-to-a Ищите и обрящете! © Song |
Сообщ.
#3
,
|
|
|
tumanovalex, ты используешь слишком много разных инструментов одновременно, и это тебя запутывает.
В модуле os, функции stat (следует символическим ссылкам), lstat (не следует символическим ссылкам), fstat (работает с дескрипторами файлов) возвращают объект типа stat_result (похоже, кортеж с именованными полями). Этот объект имеет поля st_atime, st_ctime и st_mtime, содержащие, соответственно, время последнего обращения, создания и модификации, выраженные в секундах. Имеются также поля st_atime_ns, st_ctime_ns и st_mtime_ns, содержащие те же времена, выраженные в наносекундах. Ошибкаб о которой тебе сообщают, состоит в том, что к целым надо применять функцию ctime из модуля time, а ты пытаешься применить к ним метод объекта datetime, работающий с внутренностями объекта |
Сообщ.
#4
,
|
|
|
Я немного изменил код автора
import os import time import datetime file_path = "V:/TestPrograms/Файл-даты создания и модификации.txt" create_time = os.path.getctime(file_path) formatted_time = datetime.datetime.fromtimestamp(create_time) print("Дата создания: ", formatted_time) modTimesinceEpoc = os.path.getmtime(file_path) modificationTime = datetime.datetime.fromtimestamp(modTimesinceEpoc).strftime('%Y-%m-%d %H:%M:%S') print("Дата изменения : ", modificationTime ) accessTimesinceEpoc = os.path.getatime(file_path) accessTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(accessTimesinceEpoc)) print ("Дата последнего обращения : ", accessTime ) |
Сообщ.
#5
,
|
|
|
Мой вопрос был глупым, надо было
formatted_time = datetime.datetime.fromtimestamp(create_time).strftime('%Y-%m-%d %H:%M:%S') |