0

我正在尝试创建一个仪表板,它可以显示目录中最旧的文件、最大大小的文件以及旧的和最大大小的文件。我需要一个 python 脚本,它可以递归地在我的根目录下所有可能的目录中查找文件,这些目录最旧并且具有最大大小。是否可以通过 python 执行此操作,或者您需要为此编写一个 shell 脚本/awk?

4

2 回答 2

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
于 2012-04-23T14:05:11.600 回答
1

这不是一个完整的解决方案,但应该为您指明正确的方向:

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

全局参考

口译统计

简而言之:这为您提供与 glob 匹配的每个文件的文件大小和创建时间戳,只需提取它们并根据需要进行排序。

于 2012-04-23T13:55:14.720 回答