blob: b377e0d9a8afb21d37eefb7a0c6ed3714bc6d64a [file] [log] [blame]
Jack Jansenf1148f02002-08-09 10:17:28 +00001#!/usr/local/bin/python
Jack Jansen3337ea72002-09-06 20:23:09 +00002"""Recursively zap all .pyc and .pyo files"""
Jack Jansendfebb272001-01-23 22:45:52 +00003import os
4import sys
5
Jack Jansenf1148f02002-08-09 10:17:28 +00006# set doit true to actually delete files
7# set doit false to just print what would be deleted
Jack Jansendfebb272001-01-23 22:45:52 +00008doit = 1
9
10def main():
Tim Peters182b5ac2004-07-18 06:16:08 +000011 if not sys.argv[1:]:
12 if os.name == 'mac':
13 import EasyDialogs
14 dir = EasyDialogs.AskFolder(message='Directory to zap pyc files in')
15 if not dir:
16 sys.exit(0)
17 zappyc(dir)
18 else:
Collin Wintere7bf59f2007-08-30 18:39:28 +000019 print('Usage: zappyc dir ...')
Tim Peters182b5ac2004-07-18 06:16:08 +000020 sys.exit(1)
21 for dir in sys.argv[1:]:
22 zappyc(dir)
Jack Jansendfebb272001-01-23 22:45:52 +000023
24def zappyc(dir):
Alexandre Vassalotti4e6531e2008-05-09 20:00:17 +000025 os.walk(dir, walker, None)
Tim Peters182b5ac2004-07-18 06:16:08 +000026
Jack Jansendfebb272001-01-23 22:45:52 +000027def walker(dummy, top, names):
Tim Peters182b5ac2004-07-18 06:16:08 +000028 for name in names:
29 if name[-4:] in ('.pyc', '.pyo'):
30 path = os.path.join(top, name)
Collin Wintere7bf59f2007-08-30 18:39:28 +000031 print('Zapping', path)
Tim Peters182b5ac2004-07-18 06:16:08 +000032 if doit:
33 os.unlink(path)
34
Jack Jansendfebb272001-01-23 22:45:52 +000035if __name__ == '__main__':
Tim Peters182b5ac2004-07-18 06:16:08 +000036 main()