2013-05-16 17 views
5

Đây là một thách thức cũng như một câu hỏi:Python: Nhận danh sách tất cả các tệp và thư mục trong một thư mục, thời gian tạo, thời gian sửa đổi lần cuối. Giải pháp độc lập hệ thống?

Tôi có một thư mục chứa các tệp dữ liệu. Tôi muốn danh sách sau đây của danh sách thông tin:

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

Tôi có thể tự sắp xếp sau khi có thông tin. Ai đó có thể viết các chức năng:

def get_information(directory): 
    . 
    . 
    . 
    return Information 

Những bài đăng này hữu ích:

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?

Tuy nhiên: Tôi cảm thấy có phải tồn tại một giải pháp tái sử dụng được nhiều hơn mà làm việc trên cửa sổ, và Linux.

+1

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

Trả lời

5

Tôi biết thực tế rằng os.stat hoạt động tốt trên cả hai windowslinux.

Documentation here

Tuy nhiên, để phù hợp với chức năng của mình, bạn có thể làm:

Bạn có thể sử dụng để truy cập st_atime truy cập gần đây nhất và st_ctime cho thời gian tạo tập tin.

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

Tôi đang trên một mac và tôi có được điều này,

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

CÓ! Xác nhận - điều này cũng hoạt động trên các cửa sổ và tạo ra cùng một đầu ra. – Doug

+0

Câu trả lời này nên được biết đến trên các chủ đề khác. Chúng ta nên liên kết với nó, hoặc sao chép nó. – Doug

+0

@Doug Chắc chắn, là khách của tôi. Nhưng bất kỳ chủ đề nào được liên kết với câu hỏi này, đều được liên kết đồng thời với chuỗi tương ứng. – enginefree