On Dec 12, 1:11 pm, MRAB <goo...@mrabarnett.plus.com> wrote: > John Machin wrote: > > On Dec 12, 11:39 am, MRAB <goo...@mrabarnett.plus.com> wrote: > >> Jason Scheirer wrote: > >>> On Dec 11, 3:49 pm, John Machin <sjmac...@lexicon.net> wrote: > >>>> On Dec 12, 10:31 am, "Rhodri James" <rho...@wildebst.demon.co.uk> > >>>> wrote: > >>>>> On Thu, 11 Dec 2008 19:49:23 -0000, Steve Holden <st...@holdenweb.com> > >>>>> wrote: > >>>>>> Kirk Strauser wrote: > >>>>>>> At 2008-11-29T04:02:11Z, Mel <mwil...@the-wire.com> writes: > >>>>>>>> You could try > >>>>>>>> for item in fname: > >>>>>>>> item = item.strip() > >>>>>>> This is one case where I really miss Perl's "chomp" function. It > >>>>>>> removes a > >>>>>>> trailing newline and nothing else, so you don't have to worry about > >>>>>>> losing > >>>>>>> leading or trailing spaces if those are important to you. > >>>>>> ... and it's so hard to write > >>>>>> item = item[:-1] > >>>>> Tsk. That would be "chop". "chomp" would be > >>>>> if item[-1] == '\n': > >>>>> item = item[:-1] > >>>> Better: > >>>> if item and item[-1] == '\n': > >>>> return item[:-1] > >>>> return item > >>> Best: > >>> return item \ > >>> if not (item and item.endswith('\n')) \ > >>> else item[:-1] > >>> Though really you should be using item.rstrip() > >> Why not just: > > >> item[:-1] if item.endswith('\n') else item > > > Some possible reasons: > > * because you might be supporting old versions of Python (my offering > > runs on 1.5) > > * because the "<true_value> if <condition> else <false_value>" syntax > > gives you the screaming dry Edgar Britts > > * because you'd prefer not to have the overhead of a method lookup and > > method call > > OK: > > if item[-1:] == '\n': > return item[:-1] > return item
I'll pay that :-) -- http://mail.python.org/mailman/listinfo/python-list