2011-07-20 18 views
8

Encontré este código de comprobación de directorios en la web y lo modifiqué un poco, para que imprimiera los archivos agregados. Hay una boya que me envía lecturas de vez en cuando, pero a veces la conexión se pierde y en lugar de un archivo envía múltiples archivos. Necesito que el programa los clasifique por fecha de creación. ¿Hay alguna forma de hacer esto?Ordenando archivos por fecha

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

Respuesta

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

ordenará la lista added por la fecha de última modificación de los archivos

Use st_ctime instaed de st_mtime para la hora de creación en Windows (que no quiere decir que en otras plataformas).

+1

'os.path.join' is cross -plataforma: no tiene que saber cuál es el separador adecuado. – agf

+2

O simplemente 'added.sort (clave = os.path.getmtime)' – Sheljohn