CSV with comments

Duncan Booth duncan.booth at invalid.invalid
Wed Jul 19 09:40:03 EDT 2006


Sion Arrowsmith wrote:

> Daniel Dittmar  <daniel.dittmar at sap.corp> wrote:
>>         if line [:1] == '#':
> 
> What's wrong with line[0] == '#' ? (For one thing, it's fractionally
> faster than [:1].)
> 
line[0] assumes that the line isn't blank. If the input iterator is a file 
then that will hold true, but if you were ever to reuse CommentStripper on 
a list of strings which didn't have a trailing newline it would break at 
the first blank string.

Personally I would use:

  if line.startswith('#'):

which takes about three times as long to execute but I think reads more 
clearly.

timeit.py -s "line=' hello world'" "line[:1]=='#'"
1000000 loops, best of 3: 0.236 usec per loop

timeit.py -s "line=' hello world'" "line[0]=='#'"
1000000 loops, best of 3: 0.218 usec per loop

timeit.py -s "line=' hello world'" "line.startswith('#')"
1000000 loops, best of 3: 0.639 usec per loop



More information about the Python-list mailing list