2011-07-20 22 views
8

Znalazłem ten katalog sprawdzający kod w Internecie i trochę go zmodyfikowałem, aby wydrukować dodane pliki. Jest boja, która wysyła mi odczyty co jakiś czas, ale czasami połączenie jest tracone i zamiast jednego pliku wysyła wiele plików. Potrzebuję programu, aby posortować je według daty utworzenia. Czy jest jakiś sposób na zrobienie tego?Sortowanie plików według daty

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 
+2

http://stackoverflow.com/questions/168409/how-do-you-get-a-directory-listing-sorted-by-creation-date-in-python – Jacob

Odpowiedz

23
added.sort(key=lambda x: os.stat(os.path.join(path_to_watch, x)).st_mtime) 

posortuje listę added przez czas ostatniej modyfikacji plików

użytkowania st_ctime instaed z st_mtime do czasu utworzenia w systemie Windows (nie oznacza to, że na innych platformach).

+1

'os.path.join' jest krzyżem -platform - nie musisz wiedzieć, jaki jest właściwy separator. – agf

+2

Lub po prostu "added.sort (key = os.path.getmtime)" – Sheljohn

Powiązane problemy