2013-05-16 30 views
5

这是一个挑战以及一个问题:Python:获取目录中所有文件和文件夹的列表,创建时间和上次修改时间。系统独立解决方案

我有一个数据文件的文件夹。 我想要的信息列表如下列表:

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] 
] 

我可以排序它自己后,我掌握的信息。 有人可以写函数:

def get_information(directory): 
    . 
    . 
    . 
    return Information 

这些柱是有用的:

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

5)Sorting files by date

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

但是我觉得必须存在一个更美好,更可重复使用的解决方案,它在Windows和Linux的作品。

+1

http://stackoverflow.com/questions/237079/how-to-get-file-creation-modification-date- python-time-in-rq = 1 – 2013-05-16 18:55:52

回答

5

我知道os.statwindowslinux上都能正常工作。

文档here

然而,以满足您的功能,你可以这样做:

您可以使用st_atime访问最新的文件创建时间的访问和st_ctime

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("/") 

我在一个mac,我得到这个,

[['.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

是的!确认 - 这也适用于Windows,并生成相同的输出。 – Doug

+0

这个答案应该在其他线程上知道。我们应该链接到它,或复制它。 – Doug

+0

@Doug好的,做我的客人。但是任何链接到这个问题的线程都会同时链接到相应的线程。 – enginefree

相关问题