2013-05-16 14 views
5

Bu, bir sorunun yanı sıra bir soruna da bir sorundur:Python: Bir dizindeki tüm dosya ve klasörlerin, oluşturulma saatinin, son değişiklik zamanının bir listesini alın. Sistemden bağımsız çözüm?

Veri dosyalarım var. Ben aşağıdaki bilgilerden listelerinin listesini istiyorum: Ben bilgiler aldıktan sonra

Filename:  Created:      Last modified: 

Information = 
[ 
[datafile1, Mon Mar 04 10:45:24 2013, Tue Mar 05 12:05:09 2013], 
[datafile2, Mon Mar 04 11:23:02 2013, Tue Apr 09 10:57:55 2013], 
[datafile2.1, Mon Mar 04 11:37:21 2013, Tue Apr 02 15:35:58 2013], 
[datafile3, Mon Mar 04 15:36:13 2013, Thu Apr 18 15:03:25 2013], 
[datafile4, Mon Mar 11 09:20:08 2013, Mon May 13 16:30:59 2013] 
] 

Kendim sıralayabilirsiniz.

def get_information(directory): 
    . 
    . 
    . 
    return Information 

Bu yayınlar yararlıdır:

1) How do you get a directory listing sorted by creation date in python?

2) Sorting files by date

3) How to get file creation & modification date/times in Python?

4) Python: sort files by datetime in more details

birisi işlevini yazabilir

5) Sorting files by date

6) How do I get the modified date/time of a file in Python?

Ancak: Ben pencerelerin ve linux üzerinde çalışır daha iyi, daha yeniden kullanılabilir bir çözüm bulunmalıdır hissediyorum.

+1

http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date- times-in-python? rq = 1 –

cevap

5

os.stat'un hem windows hem de linux öğelerinde iyi çalıştığını biliyorum.

Belgeler here Ancak

, sizin işlevselliği uyacak şekilde, bunu yapabilirsiniz: Dosya oluşturma zaman için en son erişim ve st_ctime erişmek için st_atime kullanabilirsiniz

.

import os,time 

def get_information(directory): 
    file_list = [] 
    for i in os.listdir(directory): 
     a = os.stat(os.path.join(directory,i)) 
     file_list.append([i,time.ctime(a.st_atime),time.ctime(a.st_ctime)]) #[file,most_recent_access,created] 
    return file_list 

print get_information("/") 

Ben mac çıkıyorum ve bana böyle,

[['.dbfseventsd', 'Thu Apr 4 18:39:35 2013', 'Thu Apr 4 18:39:35 2013'], ['.DocumentRevisions-V100', 'Wed May 15 00:00:00 2013', 'Sat Apr 13 18:11:00 2013'],....] 
+0

EVET! Onaylandı - bu, pencereler üzerinde de çalışır ve aynı çıktıyı üretir. – Doug

+0

Bu cevap diğer konularda bilinmelidir. Bağlantı kurmalı ya da kopyalamalıyız. – Doug

+0

@Doug Tabii, misafirim ol. Ancak, bu soruya bağlanan herhangi bir konu, ilgili iş parçacığına eş zamanlı olarak bağlanır. – enginefree

İlgili konular