Python get proper line ending

Question:

Is there an easy way to get the type of line ending that the current operating system uses?

Asked By: Evan Fosmark

||

Answers:

Oh, I figured it out. Apparently, PEP-278 states the following:

Any line ending in the input file will be seen as a ‘n’ in Python, so little other code has to change to handle universal newlines.

Answered By: Evan Fosmark

If you are operating on a file that you opened in text mode, then you are correct that line breaks all show up as ‘n‘. Otherwise, you are looking for os.linesep .

From http://docs.python.org/library/os.html:

os.linesep

The string used to separate (or, rather, terminate) lines on the
current platform. This may be a single
character, such as ‘n’ for POSIX, or
multiple characters, for example,
‘rn’ for Windows. Do not use
os.linesep as a line terminator when
writing files opened in text mode (the
default); use a single ‘n’ instead,
on all platforms.

Answered By: dF.

If specify test resp. binary properly when opening files, and use universal newlines, you shouldn’t have to worry about different newlines most of the time.

But if you have to, use os.linesep

Answered By: oefe

os.linesep is important as it depends (as the name implied:)) on os.

E.g. on Windows, it is not “n” but rather “rn”.

But if you don’t care about multi-platform stuff you can just use ‘n’.

Answered By: Vlad K.
Categories: questions Tags: ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.