텍스트를 줄로 분할하는 겉보기에는 간단한 작업이 역사적이고 진화하는 표준으로 인해 놀랍도록 복잡합니다. 초기 컴퓨팅은 LINE FEED(LF) 및 CARRIAGE RETURN(CR)과 같은 줄 바꿈 제어 문자를 포함하는 ASCII에 의존했습니다. 다른 운영 체제는 이러한 문자의 다양한 조합을 채택하여 일반 텍스트의 이식성 문제를 야기했습니다. 예를 들어, 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'인 문자를 단락 구분 기호로 간주하며, 이는 줄 바꿈 역할도 합니다. 여기에는 ASCII 이름 FILE SEPARATOR, GROUP SEPARATOR 및 RECORD SEPARATOR로도 알려진 INFORMATION SEPARATOR FOUR, THREE 및 TWO가 포함됩니다. 총 10개의 개별 코드 포인트와 1개의 다중 코드 포인트 시퀀스가 줄 바꿈으로 Python의 splitlines() 메서드에 의해 인식됩니다. 이 포괄적인 세트는 텍스트 줄 구분을 처리하기 위한 역사적 관례와 현대 Unicode 표준을 수용합니다.
splitlines()메서드에 의해 인식됩니다. 이 포괄적인 세트는 텍스트 줄 구분을 처리하기 위한 역사적 관례와 현대 Unicode 표준을 수용합니다.