# This is the program I have written to easily update my list of sample code.
# It essentially walks a source tree and creates an index html file
# Enjoy!
#
# - Dan Fleck, April 2008
import os, glob, time, re
# NOTE: Much of this functions code is from: Daniweb example by vegaseat
def walkTreeByDate(outfile, src="./*", pattern="\.py$|\.gif$|\.jpg$"):
"""Walk the directory tree, any files matching the pattern given, add to the
index page ordered by date """
date_file_list = []
for folder in glob.glob(src):
# select the type of file, for instance *.jpg or all files *.*
for file in glob.glob(folder + '/*.*'):
# retrieves the stats for the current file as a tuple
# (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)
# the tuple element mtime at index 8 is the last-modified-date
stats = os.stat(file)
# create tuple (year yyyy, month(1-12), day(1-31), hour(0-23), minute(0-59), second(0-59),
# weekday(0-6, 0 is monday), Julian day(1-366), daylight flag(-1,0 or 1)) from seconds since epoch
# note: this tuple can be sorted properly by date and time
lastmod_date = time.localtime(stats[8])
#print image_file, lastmod_date # test
# create list of tuples ready for sorting by date
date_file_tuple = lastmod_date, file
date_file_list.append(date_file_tuple)
date_file_list.sort()
date_file_list.reverse() # newest mod date now first
prevWeek = -1
for file in date_file_list:
# extract just the filename
folder, file_name = os.path.split(file[1])
# convert date tuple to MM/DD/YYYY HH:MM:SS format
file_date = time.strftime("%m/%d/%Y", file[0])
file_week = time.strftime("%W", file[0])
if file_week != prevWeek:
outfile.write( "\n