problem parsing lines in a file

Chris cwitts at gmail.com
Tue Dec 11 13:13:19 EST 2007


On Dec 11, 7:25 pm, barronmo <barro... at gmail.com> wrote:
> I'm having difficulty getting the following code to work.  All I want
> to do is remove the '0:00:00' from the end of each line.  Here is part
> of the original file:
>
> 3,3,"Dyspepsia NOS",9/12/2003 0:00:00
> 4,3,"OA of lower leg",9/12/2003 0:00:00
> 5,4,"Cholera NOS",9/12/2003 0:00:00
> 6,4,"Open wound of ear NEC*",9/12/2003 0:00:00
> 7,4,"Migraine with aura",9/12/2003 0:00:00
> 8,6,"HTN [Hypertension]",10/15/2003 0:00:00
> 10,3,"Imerslund syndrome",10/27/2003 0:00:00
> 12,4,"Juvenile neurosyphilis",11/4/2003 0:00:00
> 13,4,"Benign paroxysmal positional nystagmus",11/4/2003 0:00:00
> 14,3,"Salmonella infection, unspecified",11/7/2003 0:00:00
> 20,3,"Bubonic plague",11/11/2003 0:00:00
>
> output = open('my/path/ProblemListFixed.txt', 'w')
> for line in open('my/path/ProblemList.txt', 'r'):
>      newline = line.rstrip('0:00:00')
>      output.write(newline)
> output.close()
>
> This result is a copy of "ProblemList" without any changes made.  What
> am I doing wrong?  Thanks for any help.
>
> Mike

rstrip() won't do what you think it should do.
you could either use .replace('0:00:00','') directly on the input
string or if it might occur in one of the other elements as well then
just split the line on delimeters.
In the first case you can do.

for line in input_file:
    output_file.write( line.replace('0:00:00','') )

in the latter rather.

for line in input_file:
    tmp = line.split( ',' )
    tmp[3] = tmp[3].replace('0:00:00')
    output_file.write( ','.join( tmp ) )

Hope that helps,
Chris



More information about the Python-list mailing list