open() in binary vs. text mode

Syver Enstad syver-en+usenet at online.no
Thu Mar 20 19:50:51 CET 2003


bobnotbob at byu.edu (Bob Roberts) writes:

> I just finished tracking down a cross-platorm bug.  The problem was
> that I didn't open() a file in binary ("rb") mode.  What exactly does
> the binary flag do on windows?  What is it's purpose?

On windows text files are written with \r\n (carriage return and
linefeed) as the end of line marker. On Macintosh \r is the end of
line marker, and on *nix systems just \n is the end of line marker.

When opening a file in 'r' mode under windows the library translates
all the \r\n in your file into \n. When you write to a file with 'w'
under windows, library translates all \n your data to \r\n in the
file.

To avoid this auto translation, you can specify b ('rb' or 'wb') to
indicate that the file library should not translate (useful for binary
files, therefore called binary or mode).

Hope this clears up things.

-- 

Vennlig hilsen 

Syver Enstad




More information about the Python-list mailing list