Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Using the with statement in Python 2.5: SyntaxError?

I have the following python code, its working fine with python 2.7, but I want to run it on python 2.5.

I am new to Python, I tried to change the script multiple times, but i always I got syntax error. The code below throws a SyntaxError: Invalid syntax:

#!/usr/bin/env python

import sys
import re
file = sys.argv[1]
exp = sys.argv[2]

print file
print exp
with open (file, "r") as myfile:

    data=myfile.read()

    p = re.compile(exp)
    matches = p.findall(data)
    for match in matches:
        print " ".join("{0:02x}".format(ord(c)) for c in match)
like image 456
mysanj Avatar asked Nov 05 '13 14:11

mysanj


1 Answers

Python 2.5 doesn't support the with statement yet.

To use it in Python 2.5, you'll have to import it from __future__:

## This shall be at the very top of your script ##
from __future__ import with_statement

Or, as in the previous versions, you can do the procedure manually:

myfile = open(file)
try:
    data = myfile.read()
    #some other things
finally:
    myfile.close()

Hope it helps!

like image 52
aIKid Avatar answered Sep 28 '22 17:09

aIKid