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