I have files containing ASCII text with line s separated by '\r\r\n'. Example:
$ od -c FTAK31_PANC_131140.1481629265635 0000000 F T A K 3 1 P A N C 1 3 1 1 0000020 4 0 \r \r \n T A F A B E \r \r \n T A 0000040 F \r \r \n P A B E 1 3 1 1 4 0 Z 0000060 1 3 1 2 / 1 4 1 2 0 7 0 1 0 0000100 K T P 6 S M S C T 0 3 5 O 0000120 V C 0 6 0 \r \r \n F M 1 0000140 3 2 1 0 0 1 0 0 1 2 G 2 0 K T 0000160 P 6 S M B K N 1 0 0 W S 0 0000200 1 5 / 1 8 0 3 5 K T \r \r \n 0000220 F M 1 4 1 0 0 0 0 9 0 1 5 0000240 G 2 5 K T P 6 S M B K N 0 5 0000260 0 W S 0 1 5 / 1 8 0 4 0 K T = 0000300 \r \r \n 0000303 What is the proper way of getting a list of lines? Both >>> open('FTAK31_PANC_131140.1481629265635').readlines() ['FTAK31 PANC 131140\n', '\n', 'TAFABE\n', '\n', 'TAF\n', '\n', 'PABE 131140Z 1312/1412 07010KT P6SM SCT035 OVC060\n', '\n', ' FM132100 10012G20KT P6SM BKN100 WS015/18035KT\n', '\n', ' FM141000 09015G25KT P6SM BKN050 WS015/18040KT=\n', '\n'] and >>> open('FTAK31_PANC_131140.1481629265635').read().splitlines() ['FTAK31 PANC 131140', '', 'TAFABE', '', 'TAF', '', 'PABE 131140Z 1312/1412 07010KT P6SM SCT035 OVC060', '', ' FM132100 10012G20KT P6SM BKN100 WS015/18035KT', '', ' FM141000 09015G25KT P6SM BKN050 WS015/18040KT=', ''] introduce empty (or single character '\n') strings. I can do this: >>> [x.rstrip() for x in open('FTAK31_PANC_131140.1481629265635', 'rb').read().decode().split('\n')] ['FTAK31 PANC 131140', 'TAFABE', 'TAF', 'PABE 131140Z 1312/1412 07010KT P6SM SCT035 OVC060', ' FM132100 10012G20KT P6SM BKN100 WS015/18035KT', ' FM141000 09015G25KT P6SM BKN050 WS015/18040KT=', ''] 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(). Ideally I'd like to have code that handles both '\r\r\n' and '\n' as the split character. George -- https://mail.python.org/mailman/listinfo/python-list