Newby: how to transform text into lines of text

Tim Chase python.list at tim.thechases.com
Sun Jan 25 20:30:33 EST 2009


Scott David Daniels wrote:
> Here's how I'd do it:
>      with open('deheap/deheap.py', 'rU') as source:
>          for line in source:
>              print line.rstrip()  # Avoid trailing spaces as well.
> 
> This should handle \n, \r\n, and \n\r lines.


Unfortunately, a raw rstrip() eats other whitespace that may be 
important.  I frequently get tab-delimited files, using the 
following pseudo-code:

   def clean_line(line):
     return line.rstrip('\r\n').split('\t')

   f = file('customer_x.txt')
   headers = clean_line(f.next())
   for line in f:
     field1, field2, field3 = clean_line(line)
     do_stuff()

if field3 is empty in the source-file, using rstrip(None) as you 
suggest triggers errors on the tuple assignment because it eats 
the tab that defined it.

I suppose if I were really smart, I'd dig a little deeper in the 
CSV module to sniff out the "right" way to parse tab-delimited files.

-tkc






More information about the Python-list mailing list