파이썬에서 여러 줄로 이루어진 문자열을 줄바꿈(newline)을 기준으로 나누고 싶다면 크게 두 가지 방법을 사용할 수 있습니다. 바로 문자열 클래스의 splitlines() 메서드와 split('\n') 메서드입니다.
1. splitlines() 메서드 사용하기
splitlines()는 문자열에 포함된 모든 줄바꿈 지점을 기준으로 문자열을 잘라 리스트(list)로 반환합니다. 별도의 인자 없이 호출하면 되기 때문에 가장 간편하고 직관적인 방법입니다.
>>> """some multi line string""".splitlines() ['some', 'multi line', 'string']
2. split('\n') 메서드 사용하기
split() 메서드에 구분자(delimiter)로 '\n'을 직접 지정하는 방법도 있습니다. 실행 결과 역시 동일하게 리스트 형태로 반환됩니다.
>>> """some
multi line
string""".split('\n')
['some', 'multi line', 'string']두 방법의 차이점
위 예제에서는 결과가 같아 보이지만, 내부 동작에는 중요한 차이가 있습니다.
- split('\n'): 오직 '\n' 문자만 구분자로 인식합니다. 만약 윈도우 환경처럼 '\r\n'으로 줄바꿈된 텍스트를 분할하면, 각 줄 끝에 '\r' 문자가 남게 됩니다.
- splitlines(): '\n', '\r\n', '\r', '\v', '\f' 등 다양한 종류의 줄바꿈 문자를 자동으로 처리하며, 줄 끝에 붙는 불필요한 제어 문자도 함께 제거해 줍니다.
따라서 출처를 알 수 없거나 운영체제가 다른 환경에서 생성된 텍스트 파일을 다룰 가능성이 있다면, splitlines()를 사용하는 것이 더 안전하고 권장되는 방식입니다.