2011-07-20 32 views
8

Bu dizini web üzerinde kontrol kodu buldum ve biraz değiştirdim, bu yüzden eklenen dosyaları basardı. Şimdi her zaman okumaları gönderen bir şamandıra var, ve sonra bazen bağlantı kayboluyor ve bir dosya yerine birden fazla dosya gönderiyor. Oluşturulma tarihine göre onları benim için sıralamak için programa ihtiyacım var. Bunu yapmanın bir yolu var mı?Dosyaları tarihe göre sırala

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

cevap

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

dosyaları

Kullanım st_ctime Windows oluşturma kez st_mtime ait testlerinin öngördüğü son güncelleme zamanına göre added listesini sıralamak Will (diğer platformlarda olduğu anlamına gelmez).

+1

'os.path.join' cross -platform - uygun ayırıcının ne olduğunu bilmek zorunda değilsiniz. – agf

+2

Veya basitçe 'added.sort (key = os.path.getmtime) ' – Sheljohn