2012-04-23 24 views
0

我試圖創建一個儀表板,它可以顯示目錄中最舊的文件,具有最大大小以及舊大小和最大大小的文件。我需要一個python腳本,它可以在我的根目錄下的所有可能的目錄中遞歸地查找文件,這些文件是最早且最大的。是否有可能通過python做到這一點,或者你需要爲此寫一個shell腳本/ awk?查找在SUNOS上最老,且具有python最大大小的文件

回答

1

遞歸檢查目錄使用os.walk()

使用os.path.getsize()來獲取文件的大小,os.path.getmtime()得到它的修改時間。

import os 
from os.path import join, getsize, getmtime 

oldest_file, oldest_file_mtime = None, 9999999999 
largest_file, largest_file_size = None, 0 

for root, dirs, files in os.walk('/your/root'): 
    for name in files: 
     a_file = join(root, name) 
     if getmtime(a_file) < oldest_file_mtime: 
      oldest_file_mtime = getmtime(a_file) 
      oldest_file = a_file 
     if getsize(a_file) > largest_file_size: 
      largest_file_size = getsize(a_file) 
      largest_file = a_file 

print "oldest file is: ", oldest_file 
print "largest file is: ", largest_file 
1

這不是一個完整的解決方案,而是應該指向你在正確的方向:

>>> import os 
>>> import glob 
>>> for filename in glob.glob('*'): 
     print filename, os.stat(filename) 

glob reference

interpreting stat

簡而言之:這給你的每兩個文件大小和創建時間戳與glob相匹配的文件,只需提取它們並根據需要進行排序。