1. # retrieve the file information from a selected folder 2. # sort the files by last modified date/time and display in order newest file first 3. # tested with Python24 vegaseat 21jan2006 4. 5. import os, glob, time 6. 7. # use a folder you have ... 8. root = 'D:\\Zz1\\Cartoons\\' # one specific folder 9. #root = 'D:\\Zz1\\*' # all the subfolders too 10. 11. print '-'*60 # just vanity 12. 13. date_file_list = [] 14. for folder in glob.glob(root): 15. print "folder =", folder 16. # select the type of file, for instance *.jpg or all files *.* 17. for file in glob.glob(folder + '/*.*'): 18. # retrieves the stats for the current file as a tuple 19. # (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime) 20. # the tuple element mtime at index 8 is the last-modified-date 21. stats = os.stat(file) 22. # create tuple (year yyyy, month(1-12), day(1-31), hour(0-23), minute(0-59), second(0-59), 23. # weekday(0-6, 0 is monday), Julian day(1-366), daylight flag(-1,0 or 1)) from seconds since epoch 24. # note: this tuple can be sorted properly by date and time 25. lastmod_date = time.localtime(stats[8]) 26. #print image_file, lastmod_date # test 27. # create list of tuples ready for sorting by date 28. date_file_tuple = lastmod_date, file 29. date_file_list.append(date_file_tuple) 30. 31. #print date_file_list # test 32. 33. date_file_list.sort() 34. date_file_list.reverse() # newest mod date now first 35. 36. print "%-40s %s" % ("filename:", "last modified:") 37. for file in date_file_list: 38. # extract just the filename 39. folder, file_name = os.path.split(file[1]) 40. # convert date tuple to MM/DD/YYYY HH:MM:SS format 41. file_date = time.strftime("%m/%d/%y %H:%M:%S", file[0]) 42. print "%-40s %s" % (file_name, file_date)
|