Печатать возраст файла в секундах, используя Python - PullRequest
28 голосов
/ 30 июля 2011

Мне нужен мой скрипт для загрузки нового файла, если старый достаточно старый.Я установил максимальный возраст файла в секундах.Чтобы я мог вернуться к своему сценарию, мне нужен пример кода, в котором возраст файла выводится в секундах.

Ответы [ 4 ]

36 голосов
/ 30 июля 2011

Показывает, как найти время последнего изменения файла (или каталога):

Вот количество секунд с начала эпохи, используя os.stat

import os
st=os.stat('/tmp')    
mtime=st.st_mtime
print(mtime)
# 1325704746.52

Или, что то же самое, используя os.path.getmtime :

print(os.path.getmtime('/tmp'))
# 1325704746.52

Если вам нужен объект datetime.datetime :

import datetime         
print("mdatetime = {}".format(datetime.datetime.fromtimestamp(mtime)))
# mdatetime = 2012-01-04 14:19:06.523398

Или форматированная строка с использованием time.ctime

import stat
print("last accessed => {}".format(time.ctime(st[stat.ST_ATIME])))
# last accessed => Wed Jan  4 14:09:55 2012
print("last modified => {}".format(time.ctime(st[stat.ST_MTIME])))
# last modified => Wed Jan  4 14:19:06 2012
print("last changed => {}".format(time.ctime(st[stat.ST_CTIME])))
# last changed => Wed Jan  4 14:19:06 2012

Хотя я этого не показывал, есть эквиваленты для определения времени доступа и времени изменения для всех этих методов. Просто перейдите по ссылкам и найдите «atime» или «ctime».

21 голосов
/ 30 июля 2011

Другой подход (я знаю, что я не был первым ответом, но здесь все равно идет):

import time, os, stat

def file_age_in_seconds(pathname):
    return time.time() - os.stat(pathname)[stat.ST_MTIME]
1 голос
/ 21 января 2019

Принятый ответ на самом деле не отвечает на вопрос, он просто дает ответ за время последнего изменения. для получения возраста файла в секундах, минутах или часах вы можете сделать это.

import os, time

def file_age(filepath):
    return time.time() - os.path.getmtime(filepath)

seconds = file_age('myFile.txt') # 7200 seconds
minutes = int(seconds) / 60 # 120 minutes
hours = minutes / 60 # 2 hours
1 голос
/ 30 июля 2011

Используйте stat.M_TIME, чтобы получить время последнего изменения и вычесть его из текущего времени.

http://docs.python.org/library/stat.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...