2012-04-23 3 views
0

Я пытаюсь создать панель мониторинга, которая может отображать самые старые файлы в каталоге, файлы с максимальным размером и как старым, так и максимальным размером. Мне нужен скрипт python, который может найти файлы рекурсивно во всех возможных каталогах под моим корневым каталогом, которые являются самыми старыми и имеют максимальный размер. Можно ли это сделать с помощью python или вам нужно написать сценарий оболочки/awk для этого?Найти файлы, которые являются самыми старыми и имеют максимальный размер в python на 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

Короче говоря: это дает вам как FileSize и создание метки времени для каждой файл, соответствующий glob, просто извлеките их и отсортируйте по своему усмотрению.

 Смежные вопросы

  • Нет связанных вопросов^_^