Кажущаяся простой задача разделения текста на строки на удивление сложна из-за исторических и развивающихся стандартов. Ранние вычисления полагались на ASCII, который включал управляющие символы, такие как LINE FEED (LF) и CARRIAGE RETURN (CR), для переносов строк. Различные операционные системы использовали различные комбинации этих символов, что приводило к проблемам переносимости обычного текста. Например, Windows использует CR LF, Unix использует LF, а классическая Mac OS использует CR. Python решил эту проблему, введя режим "универсального переноса строки", распознающий все три распространенных формата переноса строки при открытии файлов. Помимо традиционных CR и LF, ASCII также определял FORM FEED (FF) и VERTICAL TAB (VT), которые также вызывают переносы строк. Появление Unicode ввело семь новых кодовых точек и последовательность CR LF в качестве индикаторов переноса строки. К ним относятся LINE FEED, LINE TABULATION, FORM FEED, CARRIAGE RETURN, NEXT LINE, LINE SEPARATOR и PARAGRAPH SEPARATOR. Кроме того, алгоритм двунаправленного текста Unicode рассматривает символы с двунаправленным классом "B" как разделители абзацев, которые также функционируют как переносы строк. К ним относятся INFORMATION SEPARATOR FOUR, THREE и TWO, также известные под своими ASCII-именами FILE SEPARATOR, GROUP SEPARATOR и RECORD SEPARATOR. В общей сложности метод splitlines() в Python распознает десять различных кодовых точек и одну последовательность из нескольких кодовых точек как переносы строк. Этот исчерпывающий набор учитывает исторические соглашения и современные стандарты Unicode для обработки разделения строк текста.
splitlines()в Python распознает десять различных кодовых точек и одну последовательность из нескольких кодовых точек как переносы строк. Этот исчерпывающий набор учитывает исторические соглашения и современные стандарты Unicode для обработки разделения строк текста.