__file__ access extremely slow
steven at REMOVE.THIS.cybersource.com.au
Thu Jun 4 22:40:01 EDT 2009
On Fri, 05 Jun 2009 02:21:07 +0000, Steven D'Aprano wrote:
> You corrected this to:
> for module in sys.modules.itervalues():
> path = module.__file__
> except (AttributeError, ImportError):
> (1) You're not importing anything inside the try block. Why do you think
> ImportError could be raised?
> (2) This will stop processing on the first object in sys.modules that
> doesn't have a __file__ attribute. Since these objects aren't
> *guaranteed* to be modules, this is a subtle bug waiting to bite you.
In fact, not all modules have a __file__ attribute.
>>> import errno
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute '__file__'
More information about the Python-list