new linereading standard?
johann at physics.berkeley.edu
Tue Apr 25 20:23:23 CEST 2000
Robin Becker writes:
> am I wrong for writing
> for line in open('myfile.txt').readlines():
> print line
Of course not! Wrongness is such a relative thing that no one,
especially inhuman compilers, clearly cannot judge it. If it seems
right to you, that is all that matters.
But seriously, I don't think there's anything wrong with that.
It depends on what you're doing. You can get away with a lot of
syntax crunching if what you're doing is basically simple. That
code fits the basically simple criteria in my brain.
In short, looks fine to me, and I do it a lot, when all I need from a
file is a list of lines in order.
To go off on a wild tangent, this reminds me of the whole map/lambda
functional programming fracas. See, I agree with most people that I
don't really want to see code like
map(lambda s: string.split(string.strip(s), ','),
I much prefer
out = 
for s in open('data.dat').readlines():
fields = string.split(string.strip(s), ',')
But, if I'm doing this at the interactive prompt, what I end up typing
is most often something like:
>>> lines = open('data.dat').readlines()
>>> lines = map(string.strip, lines)
>>> lines = map(lambda l: string.split(l, ','), lines)
>>> out = map(lambda fs: fs, lines)
So, basically, I find the functional stuff much more useful from
the command line than I do from actual programs. I think of the
right transform, then I apply it. Interesting.
Heh. I'm free-associating here, please bear with me. Anyone else have
Johann Hibschman johann at physics.berkeley.edu
More information about the Python-list