]> git.phdru.name Git - ppu.git/blob - remove-old-files.py
[Makefile] make docs
[ppu.git] / remove-old-files.py
1 #!/usr/bin/env python
2
3 from __future__ import print_function
4 import argparse
5 from datetime import datetime, timedelta
6 import os
7
8 if __name__ == '__main__':
9     parser = argparse.ArgumentParser(description='Remove old files')
10     parser.add_argument('-o', '--older', required=True, type=int,
11                         help='remove files older than this (in days)')
12     parser.add_argument('start_dir', help='start from this directory')
13     args = parser.parse_args()
14
15     count = errors = size = 0
16     now = datetime.now()
17
18     for dirpath, dirnames, filenames in os.walk(args.start_dir, topdown=False):
19         for fname in filenames:
20             file_path = os.path.join(dirpath, fname)
21             file_modified = datetime.fromtimestamp(os.path.getmtime(file_path))
22             if file_modified + timedelta(days=args.older) < now:
23                 count += 1
24                 size += os.path.getsize(file_path)
25                 try:
26                     os.remove(file_path)
27                 except OSError:
28                     errors += 1
29
30     print("Removed {0:d} files, freed {1:d} bytes, {2:d} errors".format(
31           count, size, errors))