3 from __future__ import print_function
5 from datetime import datetime, timedelta
8 if __name__ == '__main__':
9 parser = argparse.ArgumentParser(description='Remove old files')
10 parser.add_argument('-e', '--empty-dirs', action='store_true',
11 help='remove empty directories')
12 parser.add_argument('-o', '--older', required=True, type=int,
13 help='remove files older than this (in days)')
14 parser.add_argument('start_dir', help='start from this directory')
15 args = parser.parse_args()
17 count = errors = size = 0
20 for dirpath, dirnames, filenames in os.walk(args.start_dir, topdown=False):
21 has_newer_files = False
22 for fname in filenames:
23 file_path = os.path.join(dirpath, fname)
24 file_modified = datetime.fromtimestamp(os.path.getmtime(file_path))
25 if file_modified + timedelta(days=args.older) < now:
27 size += os.path.getsize(file_path)
33 has_newer_files = True
34 if args.empty_dirs and not dirnames and not has_newer_files:
41 print("Removed {0:d} files/dirs, freed {1:d} bytes, {2:d} errors".format(