In this article we will discuss different ways to get the last modification date & time of a file and how to convert them into different formats.
Get last modification time of a file using os.stat()
os.stat(pathOfFile)
It returns the status of file in the form of an os.stat_result object. It contains information related to a file like it’s mode, link type, access, creation or modification time etc.
To get the last modification time from os.stat_result object access the property ST_MTIME, that contains the time of
most recent file modification in seconds. Then we can covert that to readable format using time.ctime() i.e.
fileStatsObj = os.stat ( filePath ) modificationTime = time.ctime ( fileStatsObj [ stat.ST_MTIME ] ) print("Last Modified Time : ", modificationTime )
Output:
Frequently Asked:
Last Modified Time : Sun Feb 25 15:04:09 2018
Get last modification time of a file using os.path.getmtime()
Python’s os.path module provides an another API for fetching the last modification time of a file i.e.
os.path.getmtime(path)
Here, path represents the path of file and it returns the last modification time of file in terms of number of seconds since the epoch. Then we can convert the time since epoch to different readable format of timestamp. Let’s see an example,
Get last modification time using os.path.getmtime() & time.localtime()
# Get file's Last modification time stamp only in terms of seconds since epoch modTimesinceEpoc = os.path.getmtime(filePath) # Convert seconds since epoch to readable timestamp modificationTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(modTimesinceEpoc)) print("Last Modified Time : ", modificationTime )
Output:
Latest Python - Video Tutorial
Last Modified Time : 2018-02-25 15:04:09
time.localtime() converts the seconds since epoch to a struct_time in local timezone. Then by passing that time struct to time.strftime() we can get timestamp in readable format.
By changing format string in time.strftime() we can get date only and also in other format specific to our application i.e.
# Convert seconds since epoch to Date only modificationTime = time.strftime('%d/%m/%Y', time.localtime(os.path.getmtime(filePath))) print("Last Modified Time : ", modificationTime )
Output:
Last Modified Time : 25/02/2018
Get last modification time using os.path.getmtime() & datetime.fromtimestamp()
Instead of time.localtime() we can also use another function datetime.fromtimestamp() to convert seconds since epoch to time object. Then we can call time.strftime() to convert that to readable format. For example,
modTimesinceEpoc = os.path.getmtime(filePath) modificationTime = datetime.datetime.fromtimestamp(modTimesinceEpoc).strftime('%Y-%m-%d %H:%M:%S') print("Last Modified Time : ", modificationTime )
Output:
Last Modified Time : 2018-02-25 15:04:09
Get last modification time of a file in UTC Timezone
To get the last modification time in UTC timezone use datetime.utcfromtimestamp() i.e.
modTimesinceEpoc = os.path.getmtime(filePath) modificationTime = datetime.datetime.utcfromtimestamp(modTimesinceEpoc).strftime('%Y-%m-%d %H:%M:%S') print("Last Modified Time : ", modificationTime , ' UTC')
Output:
Last Modified Time : 2018-02-25 09:34:09 UTC
Complete example is as follows,
import os import stat import time import datetime def main(): filePath = '/home/varun/index.html' print("**** Get last modification time using os.stat() ****") fileStatsObj = os.stat ( filePath ) modificationTime = time.ctime ( fileStatsObj [ stat.ST_MTIME ] ) print("Last Modified Time : ", modificationTime ) print("**** Get last modification time using os.path.getmtime() & time.localtime() ****") # Get file's Last modification time stamp only in terms of seconds since epoch modTimesinceEpoc = os.path.getmtime(filePath) # Convert seconds since epoch to readable timestamp modificationTime = time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(modTimesinceEpoc)) print("Last Modified Time : ", modificationTime ) # Convert seconds since epoch to Date only modificationTime = time.strftime('%d/%m/%Y', time.localtime(os.path.getmtime(filePath))) print("Last Modified Time : ", modificationTime ) print("**** Get last modification time using os.path.getmtime() & datetime.fromtimestamp() ****") modTimesinceEpoc = os.path.getmtime(filePath) modificationTime = datetime.datetime.fromtimestamp(modTimesinceEpoc).strftime('%Y-%m-%d %H:%M:%S') print("Last Modified Time : ", modificationTime ) modificationTime = datetime.datetime.fromtimestamp(modTimesinceEpoc).strftime('%c') print("Last Modified Time : ", modificationTime ) print("**** Get last modification time in UTC Timezone ****") modTimesinceEpoc = os.path.getmtime(filePath) modificationTime = datetime.datetime.utcfromtimestamp(modTimesinceEpoc).strftime('%Y-%m-%d %H:%M:%S') print("Last Modified Time : ", modificationTime , ' UTC') if __name__ == '__main__': main()
Output:
**** Get last modification time using os.stat() **** Last Modified Time : Sun Feb 25 15:04:09 2018 **** Get last modification time using os.path.getmtime() & time.localtime() **** Last Modified Time : 2018-02-25 15:04:09 Last Modified Time : 25/02/2018 **** Get last modification time using os.path.getmtime() & datetime.fromtimestamp() **** Last Modified Time : 2018-02-25 15:04:09 Last Modified Time : Sun Feb 25 15:04:09 2018 **** Get last modification time in UTC Timezone **** Last Modified Time : 2018-02-25 09:34:09 UTC
Latest Video Tutorials