"readline()" omitted '\r' in win32 for dos format text file

Peter Otten __peter__ at web.de
Thu Dec 2 07:30:49 EST 2004


Newgene wrote:

> I have python2.3 installed on win2k. I noticed that when I open a
> dos format text file (eol is '\r\n'), readline() always returns a line
> ending with '\n' only, not '\r\n'. While I read the same file on unix,
> it returns a line ending with '\r\n' correctly.
> This makes me difficult to determine the format of a text file, dos or
> unix.
> 
> Is this a bug or intended behavior? If not a bug, then how to
> determine the format of a text file?

It's not a bug. On windows, files are opened in text mode by default.

Opening a file in binary mode 

file(name, "rb") 

will preserve the line endings regardless of platform while opening it in
"universal" mode 

file(name, "rU") 

will normalize all line endings to "\n". 

Peter





More information about the Python-list mailing list