DEV Community

Cover image for Housekeeping files using python modules
Vikram
Vikram

Posted on

Housekeeping files using python modules

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__))
Enter fullscreen mode Exit fullscreen mode
$ 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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Top comments (0)