How to count lines in a text file ?
aleaxit at yahoo.com
Wed Sep 22 17:17:11 EDT 2004
Andrew Dalke <adalke at mindspring.com> wrote:
> Alex Martelli wrote:
> > If one is really in a hurry counting lines, a dedicated C extension
> > might help. E.g.:
> > static PyObject *count(PyObject *self, PyObject *args)
> > Using this count-items-in-iterable thingy
> There's been a few times I've wanted a function like
Me too, that's why I wrote the C and Pyrex versions:-).
> this. I keep expecting that len(iterable) will work,
> but of course it doesn't.
Yep -- it would probably be too risky to have len(...) consume a whole
iterator, beginning users wouldn't expect that and might get burnt.
> Would itertools.len(iterable) be useful? More likely
> the name collision with len itself would be a problem,
> so perhaps itertools.length(iterable).
Unfortunately, itertools's functions are there to produce iterators, not
to consume them. I doubt Raymond Hettinger, itertools' guru, would
approve of changing that (though one could surely ask him, and if he
surprised me, I guess the change might get in).
There's currently no good single place for 'accumulators', i.e.
consumers of iterators which produce scalars or thereabouts -- sum, max,
and min, are built-ins; other useful accumulators can be found in heapq
(because they're implemented via a heap...)... and there's nowhere to
put the obviously needed "trivial" accumulators, such as average,
median, variance, count...
A "stats" module was proposed, but also shot down (presumably people
have more ambitious ideas about 'statistics' than there simple
accumulators, alas -- I'm not sure exactly what the problem was).
More information about the Python-list