everyday

Python File Modules - Time & Size

File module in python has a lot of useful properties. It provides access to various file properties related to time which then can be plugged in use cases like housekeeping, archiving or building logic based the file modified or created time

os.path.getatime() returns the access time, os.path.getmtime() returns the modification time, and os.path.getctime() returns the creation time. os.path.getsize() returns the amount of data in the file, represented in bytes.

# ospath_properties.py
import os.path
import time

print('File         :', __file__)
print('Access time  :', time.ctime(os.path.getatime(__file__)))
print('Modified time:', time.ctime(os.path.getmtime(__file__)))
print('Change time  :', time.ctime(os.path.getctime(__file__)))
print('Size         :', os.path.getsize(__file__))
$ python3 ospath_properties.py

File         : ospath_properties.py
Access time  : Sun Mar 18 16:21:22 2018
Modified time: Fri Nov 11 17:18:44 2016
Change time  : Fri Nov 11 17:18:44 2016
Size         : 481

A simple script to archive files from given directory using getctime

# housekeep_files.py

import os
import time
from datetime import datetime

# get list of file names
file_names = os.listdir()
archive_days = 90
now = datetime.now()

for file in file_names:
   # get created time of file and convert to datetime
   created_time = time.ctime(os.path.getctime(files[0]))
   created_datetime = datetime.strptime(c_time, "%a %b %d %H:%M:%S %Y")
   diff_days = (now - created_datetime).days

   # find difference between archive and current day
   if days > archive_days:
      # logic here to copy or move or remove files

This is part of series of articles from Python Module of the Week

#pymotw