• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1#! /usr/bin/env python
2import sys, os, stat
3from bsdopendirtype import opendir
4
5def clean(path):
6    global count
7    try:
8        content = opendir(path)
9    except OSError:
10        print >> sys.stderr, "skipping", path
11        return
12    for filename, smode in content:
13        if stat.S_ISDIR(smode):
14            clean(filename)
15            if filename.endswith('/__pycache__'):
16                try:
17                    os.rmdir(filename)
18                except OSError:
19                    pass
20        elif (filename.endswith('.pyc') or filename.endswith('.pyo') or
21              filename.endswith('.pyc~') or filename.endswith('.pyo~')):
22            os.unlink(filename)
23            count += 1
24
25count = 0
26
27for arg in sys.argv[1:] or ['.']:
28    print "cleaning path", arg, "of .pyc/.pyo/__pycache__ files"
29    clean(arg)
30
31print "%d files removed" % (count,)
32