File Object behavior

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

When I open a csv or txt file with:

infile = open(sys.argv[1],'rb').readlines()
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')

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
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
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?

View this message in context:
Sent from the Python - python-list mailing list archive at

More information about the Python-list mailing list