Python 2.5.2- what was instead of 'with' statement

12,213

Solution 1

In Python 2.5, you actually can use the with statement -- just import it from __future__:

from __future__ import with_statement

Solution 2

If you can't, or don't want to use with, then use finally:

gzipHandler = gzip.open(gzipFile)
out = open(txtFile, 'w')
try:
    for line in gzipHandler:
        out.write(line)
finally:
    out.close()
    gzipHandler.close()

The cleanup code in the finally clause will always be excecuted, whether an exception is raised, or not.

Share:
12,213
Ron D.
Author by

Ron D.

Updated on August 17, 2022

Comments

  • Ron D.
    Ron D. almost 2 years

    I wrote my code for python 2.7 but the server has 2.5. How do i rewrite the next code so it will run in python 2.5.2:

    gzipHandler = gzip.open(gzipFile)
    
    try:
        with open(txtFile, 'w') as out:
            for line in gzipHandler:
                out.write(line)
    except: 
        pass
    

    Right now, when i try to run my script I get this error:

    Warning: 'with' will become a reserved keyword in Python 2.6 Traceback (most recent call last): File "Main.py", line 7, in from Extractor import Extractor File "/data/client/scripts/Extractor.py", line 29 with open(self._logFile, 'w') as out: ^ SyntaxError: invalid syntax

    Thanks, Ron.