我会用:import os
from os.path import join
from datetime import datetime, timedelta
from operator import itemgetter
def list_user_files(username):
for root, dirs, files in os.walk(username):
for name in files:
fullname = join(root, name)
try:
yield fullname, os.stat(fullname).st_mtime
except (IOError, OSError) as e: # will catch WindowsError but more generic
pass # Do something here...
ROOT = '/home'
CUTOFF = timedelta(days=30)
for userdir in os.listdir(ROOT):
most_recent = max(list_user_files(join(ROOT, userdir)), key=itemgetter(1))
print '{}: most recent file and timestamp is {}'.format(userdir, most_recent)
if (datetime.now() - datetime.fromtimestamp(most_recent[1])) > CUTOFF:
print '{} has not used their folder during cutoff period'.format(userdir)
调试maxValueError(用这个代替most_recent=行):
^{pr2}$