Jack Jansen | f1148f0 | 2002-08-09 10:17:28 +0000 | [diff] [blame] | 1 | #!/usr/local/bin/python |
Jack Jansen | 3337ea7 | 2002-09-06 20:23:09 +0000 | [diff] [blame] | 2 | """Recursively zap all .pyc and .pyo files""" |
Jack Jansen | dfebb27 | 2001-01-23 22:45:52 +0000 | [diff] [blame] | 3 | import os |
| 4 | import sys |
Jack Jansen | b340acf | 2003-01-26 21:40:00 +0000 | [diff] [blame] | 5 | import EasyDialogs |
Jack Jansen | dfebb27 | 2001-01-23 22:45:52 +0000 | [diff] [blame] | 6 | |
Jack Jansen | f1148f0 | 2002-08-09 10:17:28 +0000 | [diff] [blame] | 7 | # set doit true to actually delete files |
| 8 | # set doit false to just print what would be deleted |
Jack Jansen | dfebb27 | 2001-01-23 22:45:52 +0000 | [diff] [blame] | 9 | doit = 1 |
| 10 | |
| 11 | def main(): |
Jack Jansen | f1148f0 | 2002-08-09 10:17:28 +0000 | [diff] [blame] | 12 | if not sys.argv[1:]: |
| 13 | if os.name == 'mac': |
| 14 | import macfs |
Jack Jansen | b340acf | 2003-01-26 21:40:00 +0000 | [diff] [blame] | 15 | dir = EasyDialogs.AskFolder(message='Directory to zap pyc files in') |
| 16 | if not dir: |
Jack Jansen | f1148f0 | 2002-08-09 10:17:28 +0000 | [diff] [blame] | 17 | sys.exit(0) |
Jack Jansen | f1148f0 | 2002-08-09 10:17:28 +0000 | [diff] [blame] | 18 | zappyc(dir) |
| 19 | else: |
Jack Jansen | dfebb27 | 2001-01-23 22:45:52 +0000 | [diff] [blame] | 20 | print 'Usage: zappyc dir ...' |
| 21 | sys.exit(1) |
Jack Jansen | f1148f0 | 2002-08-09 10:17:28 +0000 | [diff] [blame] | 22 | for dir in sys.argv[1:]: |
| 23 | zappyc(dir) |
Jack Jansen | dfebb27 | 2001-01-23 22:45:52 +0000 | [diff] [blame] | 24 | |
| 25 | def zappyc(dir): |
| 26 | os.path.walk(dir, walker, None) |
| 27 | |
| 28 | def walker(dummy, top, names): |
| 29 | for name in names: |
Jack Jansen | 3337ea7 | 2002-09-06 20:23:09 +0000 | [diff] [blame] | 30 | if name[-4:] in ('.pyc', '.pyo'): |
Jack Jansen | dfebb27 | 2001-01-23 22:45:52 +0000 | [diff] [blame] | 31 | path = os.path.join(top, name) |
| 32 | print 'Zapping', path |
| 33 | if doit: |
| 34 | os.unlink(path) |
| 35 | |
| 36 | if __name__ == '__main__': |
| 37 | main() |
| 38 | |