File Object behavior

Michael Castleton fatuheeva at yahoo.com
Tue Apr 3 20:02:40 CEST 2007


When I open a csv or txt file with:

infile = open(sys.argv[1],'rb').readlines()
or 
infile = open(sys.argv[1],'rb').read()

and then look at the first few lines of the file there is a carriage return
+ 
line feed at the end of each line - \r\n
This is fine and somewhat expected.  My problem comes from then writing
infile out to a new file with:

outfile = open(sys.argv[2],'w')
outfile.writelines(infile)
outfile.close()

at which point an additional carriage return is inserted to the end of each
line - \r\r\n
The same behavior occurs with outfile.write(infile) also. I am doing no
processing
between reading the input and writing to the output.
Is this expected behavior? The file.writelines() documentation says that it 
doesn't add line separators. Is adding a carriage return something
different?
At this point I have to filter out the additional carriage return which
seems like 
extra and unnecessary effort.
I am using Python 2.4 on Windows XP sp2.
Can anybody help me understand this situation?

Thanks
-- 
View this message in context: http://www.nabble.com/File-Object-behavior-tf3520070.html#a9821538
Sent from the Python - python-list mailing list archive at Nabble.com.




More information about the Python-list mailing list