Line terminators in Python?
Pavol Lisy
pavol.lisy at gmail.com
Sat Sep 30 04:45:29 EDT 2017
On 9/29/17, Rob Gaddi <rgaddi at highlandtechnology.invalid> wrote:
> On 09/29/2017 10:54 AM, Stefan Ram wrote:
>> In some languages, printing »'\n'«, the Unicode code point 10,
>> will have the effect of printing a line terminator, which might
>> mean that the output device actually receives »\r\n«.
>>
>> The line terminator ostensibly depends on the operating
>> system, but actually it depends on the output system. E.g.,
>> under one operating system the console might accept another
>> set of line separators than an editor. (Under Windows,
>> »wordpad« accepts »\n«, while »notepad« requires »\r\n«.)
>>
>> What is the recommended way to terminate a line written with
>> Python? Is it »\n« or something else? For example, in Java,
>> in some cases, one should terminate the line with the value
>> of »java.lang.System.lineSeparator()« which might or might
>> not be equal to the value of »"\n"«.
>>
>> Does it possibly depend on the entity being written to, which
>> might be
>>
>> - the Python console,
>> - the IDLE console,
>> - the operating system console or
>> - a text file?
>>
>
> As everyone else has said; for general purpose (any of your cases) use
> you should always just use '\n' and it automagically works. The only
> time I've ever needed to explicitly worry about '\r' is communicating
> over sockets or serial ports to devices. And in those cases you need to
> stuff them with bytes rather than str anyhow, so you're already down in
> the gory bits.
>
> --
> Rob Gaddi, Highland Technology -- www.highlandtechnology.com
There is also https://docs.python.org/3/library/csv.html#csv.Dialect.lineterminator
which (I think) come from RFC4180 (see
http://www.rfc-archive.org/getrfc.php?rfc=4180 search CRLF)
http://www.rfc-archive.org/getrfc.php?rfc=2046 could be also
interesting in this case.
More information about the Python-list
mailing list