2012-04-23 13 views
0

ディレクトリ内の最も古いファイル、最大サイズのファイル、古いサイズと最大サイズを表示できるダッシュボードを作成しようとしている。私は最も古く、最大サイズを持つ私のルートディレクトリの下のすべての可能なディレクトリでファイルを再帰的に見つけることができるpythonスクリプトが必要です。これをPythonで行うことは可能ですか?これのためにシェルスクリプト/ awkを書く必要がありますか?SUNOSで最も古く、最大サイズのファイルを見つける。

答えて

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にマッチしたファイルを取り出し、必要に応じてソートしてソートします。

関連する問題