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