Python get proper line ending

PythonLine Endings

Python Problem Overview


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

Python Solutions


Solution 1 - Python

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, > '\r\n' 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.

Solution 2 - Python

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.

Solution 3 - Python

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

Solution 4 - Python

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

E.g. on Windows, it is not "\n" but rather "\r\n".

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

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionEvan FosmarkView Question on Stackoverflow
Solution 1 - PythondF.View Answer on Stackoverflow
Solution 2 - PythonEvan FosmarkView Answer on Stackoverflow
Solution 3 - PythonoefeView Answer on Stackoverflow
Solution 4 - PythonVlad K.View Answer on Stackoverflow