What you should be doing is to open the file with universal newline support (for Python 2.x). This is done with a mode of "U" or "rU". Any type of newline is then supported. The following documentation is given in the python manual http://docs.python.org/library/functions.html#open:
In addition to the standard fopen() values mode may be 'U' or 'rU'. Python is usually built with universal newline support; supplying 'U' opens the file as a text file, but lines may be terminated by any of the following: the Unix end-of-line convention '\n', the Macintosh convention '\r', or the Windows convention '\r\n'. All of these external representations are seen as '\n' by the Python program. If Python is built without universal newline support a mode with 'U' is the same as normal text mode. Note that file objects so opened also have an attribute called newlines which has a value of None (if no newlines have yet been seen), '\n', '\r', '\r\n', or a tuple containing all the newline types seen.
For Python 3, there is a newline option to open which controls the behaviour of newlines. Looking at the documentation, it appears that universal newline support is the default.