leftover pyc files

Andrea Crotti andrea.crotti.0 at gmail.com
Wed Nov 2 11:45:43 EDT 2011


On 11/02/2011 03:03 PM, Peter Otten wrote:
> Switch to Python3.2 ;)

Yes I saw that and it would be great, unfortunately we're stuck with 
Python 2.5 :O
for some more time.

Anyway now the code that does it is a recursive thing ilke
def _clean_orphaned_pycs(self, directory, simulate=False):
     """Remove all the pyc files without a correspondent module
     """
     files = listdir(directory)
     # going down the tree recursively (like os.walk)
     for x in files:
         if x.endswith('.pyc'):
             py_file = x.split('.pyc')[0] + '.py'

             if (not simulate) and (py_file not in files):
                 deletable_pyc = path.join(directory, x)
                 print 'DELETING pyc %s as it has no py %s' % \
                     (deletable_pyc, py_file)
                 remove(deletable_pyc)

         #TODO: move out these special cases
         if path.isdir(path.join(directory, x)) \
             and x != '.svn' \
             and not x.endswith('.egg-info'):

             self._clean_orphaned_pycs(path.join(directory, x))


Can be done much better probably with os.walk or os.path.walk,
any suggestions?



More information about the Python-list mailing list