Sorting files by date
Asked Answered
I

1

9

I found this directory checking code on the web and modified it a little, so it would print out added files. There's a buoy that sends me readings every now-and-then, but sometimes the connection is lost and instead of one file it sends multiple files. I need the program to sort them for me by date created. Is there a way to do this?

import os, time
path_to_watch = 'c://Users//seplema//Documents//arvuti'
before = dict([(f, None) for f in os.listdir (path_to_watch)])
while 1:
    after = dict([(f, None) for f in os.listdir (path_to_watch)])
    added = [f for f in after if not f in before]
    if before == after:
        1==1
    else:
        if len(added)==1:
            print added[0]
        else:
            for i in range (0,len(added)):
                print added[i]
    time.sleep(10)
    before = after
Irony answered 20/7, 2011 at 9:2 Comment(1)
#168909Dixiedixieland
R
27
added.sort(key=lambda x: os.stat(os.path.join(path_to_watch, x)).st_mtime)

Will sort the added list by the last modified time of the files

Use st_ctime instaed of st_mtime for creation time on Windows (it doesn't mean that on other platforms).

Roslyn answered 20/7, 2011 at 9:10 Comment(2)
os.path.join is cross-platform -- you don't have to know what the proper separator is.Roslyn
Or simply added.sort( key=os.path.getmtime )Artemus

© 2022 - 2024 — McMap. All rights reserved.