Let's imagine you are taking a lot of pictures and modify them with one of those fancy image editors. You burned the image files to a CD, and decided to purge some of the outdated files because your hard drive is getting full. This Python code allows you to set an expiration date. Any image in a given folder or subfolder that hasn't been modified since then is destined for the bit bucket. A slight modification allows you to set other criteria like last access date, or for instance removing text files (.txt). Just be careful when you test this out.
# remove all jpeg image files of an expired modification date = mtime # you could also use creation date (ctime) or last access date (atime) # os.stat(filename) returns (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) # tested with Python24 vegaseat 6/7/2005 import os, glob, time root = 'D:\\Vacation\\Poland2003\\' # one specific folder #root = 'D:\\Vacation\\*' # or all the subfolders too # expiration date in the format YYYY-MM-DD xDate = '2003-12-31' print '-'*50 for folder in glob.glob(root): print folder # here .jpg image files, but could be .txt files or whatever for image in glob.glob(folder + '/*.jpg'): # retrieves the stats for the current jpeg image file # the tuple element at index 8 is the last-modified-date stats = os.stat(image) # put the two dates into matching format lastmodDate = time.localtime(stats) expDate = time.strptime(xDate, '%Y-%m-%d') print image, time.strftime("%m/%d/%y", lastmodDate) # check if image-last-modified-date is outdated if expDate > lastmodDate: try: print 'Removing', image, time.strftime("(older than %m/%d/%y)", expDate) #os.remove(image) # commented out for testing except OSError: print 'Could not remove', image
About the Author