Steven W. Orr wrote: >> From the tutorial, they said that the following construct will > automatically close a previously open file descriptor: > > ------------------- > #! /usr/bin/python > import sys > > for nn in range ( 1, len(sys.argv ) ): > print "arg ", nn, "value = ", sys.argv[nn] > with open(sys.argv[nn]) as f: > for line in f: > print line, > ------------------ > > but when I run it (with args) I get: > > 591 > ./cat.py cat.py > File "./cat.py", line 6 > with open(sys.argv[nn]) as f: > ^ > SyntaxError: invalid syntax > 592 > > > This example came from http://docs.python.org/tut/node10.html down in > section 8.7 > > Am I missing something?
You need to enable the with statement using a __future__ import:: >>> with open('temp.txt', 'w') as f: <stdin>:1: Warning: 'with' will become a reserved keyword in Python 2.6 File "<stdin>", line 1 with open('temp.txt', 'w') as f: ^ SyntaxError: invalid syntax >>> from __future__ import with_statement >>> with open('temp.txt', 'w') as f: ... f.write('hello') ... STeVe -- http://mail.python.org/mailman/listinfo/python-list