Print file age in seconds using Python

Another approach (I know I wasn't the first answer but here goes anyway):

import time, os, stat

def file_age_in_seconds(pathname):
    return time.time() - os.stat(pathname)[stat.ST_MTIME]

This shows how to find a file's (or directory's) last modification time:

Here are the number of seconds since the Epoch, using os.stat

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

Or, equivalently, using os.path.getmtime:

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

If you want a datetime.datetime object:

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

Or a formated string using 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

Although I didn't show it, there are equivalents for finding the access time and change time for all these methods. Just follow the links and search for "atime" or "ctime".

Tags:

Python

File