The three major operating systems used today are Microsoft Windows, Apple's Macintosh
OS, and the various Unix derivatives. A
minor irritation of cross-platform work is that these three platforms all use different
characters to mark the ends of lines in text files. Unix uses the linefeed (ASCII character 10),
MacOS uses the carriage return (ASCII character 13), and Windows uses a two-character
sequence of a carriage return plus a newline.
Python's file objects can now support end of line conventions other than the one
followed by the platform on which Python is running. Opening a file with the mode
'rU' will open a file for reading in universal newline mode. All three
line ending conventions will be translated to a "\n"
in the strings returned by the various file methods such as read()
Universal newline support is also used when importing modules and when executing a file
with the execfile() function. This means that Python modules can
be shared between all three operating systems without needing to convert the line-endings.
This feature can be disabled when compiling Python by specifying the --without-universal-newlines switch when running Python's configure script.