Robert Uhl wrote: > o Macros > > As mentioned above, macros can make one's life significantly nicer. I > use Python a lot (it's currently a better choice than Lisp for many of > the problems I face), and I find myself missing macros all the time. > The ability to take some frequently-used idiom and wrap it up in a macro > is wonderful. E.g. a common idiom in Python is: > > file = open(path, 'r') > for line in file.readlines(): > foo(line) > bar(line) > baz(line) > > Even this isn't much nicer: > > for line in open(path, 'r').readlines(): > foo(line) > bar(line) > baz(line) > > Wouldn't it be nice to have a macro with-open-file? > > filefor line in path: > foo(line) > bar(line) > baz(line) >
You probably need to refresh your Python skills if you want to be more productive in it. Files have been iterable for the last couple of years (since 2.1-2.2, don't remember). for line in open(path): foo(line) bar(line) baz(line) You can also iterate through the lines of more than one files using the fileinput module (http://docs.python.org/lib/module-fileinput.html): import fileinput # iterate over the lines of the files passed as command line # arguments (sys.argv[1:]) or sys.stdin for no arguments for line in fileinput.input(): foo(line) I'm sure there should be more convincing examples for macros, but neither this nor the 'unless' syntax sugar cuts it. George -- http://mail.python.org/mailman/listinfo/python-list