| #! /usr/bin/env python |
| import sys, os, stat |
| from bsdopendirtype import opendir |
| |
| def clean(path): |
| global count |
| try: |
| content = opendir(path) |
| except OSError: |
| print >> sys.stderr, "skipping", path |
| return |
| for filename, smode in content: |
| if stat.S_ISDIR(smode): |
| clean(filename) |
| if filename.endswith('/__pycache__'): |
| try: |
| os.rmdir(filename) |
| except OSError: |
| pass |
| elif (filename.endswith('.pyc') or filename.endswith('.pyo') or |
| filename.endswith('.pyc~') or filename.endswith('.pyo~')): |
| os.unlink(filename) |
| count += 1 |
| |
| count = 0 |
| |
| for arg in sys.argv[1:] or ['.']: |
| print "cleaning path", arg, "of .pyc/.pyo/__pycache__ files" |
| clean(arg) |
| |
| print "%d files removed" % (count,) |