> My understanding is that users can write code that uses only \n and > Python will write the end-of-line character(s) that are appropriate > for the platform when writing to a file. That's what I meant by uses > \n for everything internally.
Here you misunderstand - that's only the case when the file is opened in text mode. If the file is opened in binary mode, and you write \n, then it writes just a single byte (0xA). > But if you write \r\n to a file Python completely ignores the > presence of the \r and transforms the \n into a \r\n anyway, hence > the \r\r in the resulting stream. My last question is simply does > anyone find writing \r\r\n when the original string contained \r\n a > useful behavior - personally I don't see how it is. That's just for consistency. > But Guido's response makes this sound like it's a problem w/ VC++ > stdio implementation and not something that Python is explicitly > doing. That's correct - it's the notion of "text mode" for file IO. > Anyway, it'd might be useful to have a text-mode file that > you can write \r\n to and only get \r\n in the resulting file. This I don't understand. Why don't you just use binary mode then? At least for Python 2.x, the *only* difference between text and binary mode is the treatment of line endings. For Python 3, things will be different as the distinction goes further; the precise API for line endings is still being considered there. Regards, Martin _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com