New submission from Sven Marnach <[email protected]>:
The execfile fixer of the 2to3 script replaces the 2.x code
execfile("a.py")
by
exec(compile(open("a.py").read(), "a.py", 'exec'))
The new code does not explicitly close the file. This is not usually a problem
in CPython, but
1. the code will throw a RessourceWarnings if enabled and
2. other Python implementation don't close the file immediately.
(I think the 2to3 script should be as implementation-independent as possible.)
The obvious fix would be to use a with-statement:
with open("a.py") as new_name:
exec(compile(new_name.read(), "a.py", 'exec'))
If this is to be changed, I'd be happy to prepare a patch.
----------
components: 2to3 (2.x to 3.x conversion tool)
messages: 146918
nosy: smarnach
priority: normal
severity: normal
status: open
title: execfile fixer produces code that does not close the file
type: behavior
versions: Python 3.2, Python 3.3
_______________________________________
Python tracker <[email protected]>
<http://bugs.python.org/issue13332>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe:
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com