Splitting text into lines

Peter Otten __peter__ at web.de
Tue Dec 13 12:02:02 EST 2016


George Trojan - NOAA Federal wrote:

> I have files containing ASCII text with line s separated by '\r\r\n'.

> but it looks cumbersome. I Python2.x I stripped '\r' before passing the
> string to split():
> 
>>>> open('FTAK31_PANC_131140.1481629265635').read().replace('\r', '')
> 'FTAK31 PANC 131140\nTAFABE\nTAF\nPABE 131140Z 1312/1412 07010KT P6SM
> SCT035 OVC060\n     FM132100 10012G20KT P6SM BKN100 WS015/18035KT\n
> FM141000 09015G25KT P6SM BKN050 WS015/18040KT=\n'
> 
> but Python 3.x replaces '\r\r\n' by '\n\n' on read().

Tell Python to keep the newline chars as seen with

open(filename, newline="")

For example:

>>> open("odd-newlines.txt", "rb").read()
b'alpha\nbeta\r\r\ngamma\r\r\ndelta\n'

>>> open("odd-newlines.txt", "r", newline="").read().replace("\r", 
"").splitlines()
['alpha', 'beta', 'gamma', 'delta']

> 
> Ideally I'd like to have code that handles both '\r\r\n' and '\n' as the
> split character.





More information about the Python-list mailing list