目次
1. Python에서 문자열을 분할할 필요성
1.1. 문자열 조작의 중요성
Python에서는 문자열 조작이 매우 중요합니다. 일상적인 텍스트 데이터 처리나 데이터 분석을 위한 전처리 등, 다양한 상황에서 문자열을 분할하는 작업이 필요합니다. 예를 들어, CSV 파일의 분석이나 사용자 입력의 처리, 웹 스크래핑으로 얻은 텍스트 데이터를 처리할 때, 문자열 분할은 필수적인 기법입니다.1.2. 이 글에서 배울 수 있는 것
이 글에서는 Python에서 문자열을 분할하는 기본적인 방법부터 더 고급스러운 정규식을 사용한 분할까지 폭넓게 설명합니다. 또한,split()
, splitlines()
, re.split()
등의 주요 메서드 사용법을 중심으로, 실용적인 코드 예제도 곁들여 설명합니다。2. Python의 split() 메서드로 기본적인 문자열 분할
2.1. split() 메서드란?
split()
메서드는 Python에서 문자열을 처리할 때 가장 기본적인 메서드 중 하나입니다. 지정한 구분자(델리미터)로 문자열을 분할하고, 리스트 형태로 반환합니다. 기본값으로는 공백 문자(스페이스, 탭, 줄바꿈)가 구분자로 사용됩니다。text = "apple banana cherry"
fruits = text.split()
print(fruits) # 출력: ['apple', 'banana', 'cherry']
2.2. 구분자를 지정하기
구분자를 지정하여 문자열을 분할할 수도 있습니다. 예를 들어, 쉼표나 세미콜론 등으로 구분된 문자열을 분할하려면 다음과 같이 작성합니다。text = "apple,banana,cherry"
fruits = text.split(",")
print(fruits) # 출력: ['apple', 'banana', 'cherry']
2.3. 분할 횟수를 제한하기
split()
메서드의 두 번째 인수에 분할 횟수를 지정하면, 최대 몇 번까지 분할할지 제한할 수 있습니다。text = "apple,banana,cherry,orange"
fruits = text.split(",", 2)
print(fruits) # 출력: ['apple', 'banana', 'cherry,orange']
이를 통해 필요한 부분만 분할하여 가져올 수 있으며, 분할 후 특정 부분을 그대로 유지해야 할 때 유용합니다。
3. splitlines()로 개행 코드를 기준으로 분할하는 방법
3.1. splitlines() 메서드의 개요
splitlines()
는 문자열의 개행 코드를 기준으로 문자열을 분할하는 메서드입니다. 파일의 내용을 행 단위로 처리하고 싶을 때나, 개행을 포함한 데이터를 다룰 때 특히 유용합니다.text = """apple
banana
cherry"""
lines = text.splitlines()
print(lines) # 출력: ['apple', 'banana', 'cherry']
3.2. 개행 코드를 유지하는 방법
splitlines()
메서드에는 개행 코드를 유지할지 여부를 지정하는 옵션도 있습니다. 인수로 True
를 전달하면, 분할된 문자열에 개행 코드를 남겨둘 수 있습니다.text = """applenbananancherry"""
lines = text.splitlines(True)
print(lines) # 출력: ['applen', 'bananan', 'cherry']
이 방법은 원본 텍스트의 형식을 유지하면서 행 단위로 처리하고 싶을 때 유용합니다.4. 정규식을 사용한 re.split()로 문자열 분할
4.1. re.split()의 기본적인 사용법
Python의re
모듈을 사용하면 정규식을 사용해 문자열을 유연하게 분할할 수 있습니다. 예를 들어, 여러 서로 다른 구분자를 동시에 사용해 분할할 때 유용합니다。import re
text = "apple123banana456cherry"
fruits = re.split(r'd+', text)
print(fruits) # 출력: ['apple', 'banana', 'cherry']
4.2. 여러 구분자로 분할
여러 구분자를 사용해 문자열을 분할하고 싶다면, 정규식으로 구분자를 지정할 수 있습니다. 예를 들어, 쉼표, 세미콜론, 공백을 구분자로 사용할 경우 다음과 같이 작성합니다。text = "apple, banana; cherry"
fruits = re.split(r'[;, ]+', text)
print(fruits) # 출력: ['apple', 'banana', 'cherry']
4.3. 복잡한 패턴으로 분할
re.split()
는 특정 패턴이나 규칙에 따라 문자열을 분할하는 데 매우 강력합니다. 예를 들어, 특정 숫자 조합이나 문자 패턴으로 문자열을 분할할 수 있습니다。text = "apple100banana200cherry"
fruits = re.split(r'd+', text)
print(fruits) # 출력: ['apple', 'banana', 'cherry']

5. 기타 유용한 메서드: partition()와 rpartition()
5.1. partition() 메서드 사용법
partition()
메서드는 지정한 구분자를 사용해 문자열을 세 부분으로 분할합니다. 구분자 자체를 포함한 결과를 반환하므로, 구분자가 필요할 때 유용합니다。text = "apple@banana@cherry"
parts = text.partition("@")
print(parts) # 출력: ('apple', '@', 'banana@cherry')
5.2. rpartition()로 오른쪽에서 분할
rpartition()
는、partition()
와 유사하지만, 구분자를 오른쪽부터 찾아 분할합니다. 마지막으로 나타나는 구분자로 분할하고 싶을 때 유용합니다。text = "apple@banana@cherry"
parts = text.rpartition("@")
print(parts) # 출력: ('apple@banana', '@', 'cherry')
6. 코드 예시와 응용: Python에서 문자열 분할 실습
6.1. 문자열 분할의 응용 예
예를 들어, 사용자 입력을 처리할 때 사용자가 입력한 데이터를 특정 형식으로 나누어 처리해야 할 때가 있습니다. 다음 예에서는 사용자가 쉼표로 구분해 입력한 데이터를 나눠 각각 출력합니다.user_input = "name:apple, age:30, city:Tokyo"
info = user_input.split(", ")
for item in info:
key, value = item.split(":")
print(f"{key}: {value}")
6.2. 파일에서 데이터 처리
파일 내의 데이터를 처리할 때, 행 단위로 나누어 처리해야 할 경우가 있습니다. 다음 코드는 텍스트 파일에서 데이터를 읽어와 행별로 분할하여 리스트에 저장하는 예입니다。with open('data.txt', 'r') as file:
lines = file.read().splitlines()
print(lines)

7. 정리: Python의 문자열 분할 메서드를 잘 활용해 보자
7.1. 정리
Python에는 문자열을 분할하기 위한 다양한 메서드가 제공되어 있습니다.split()
, splitlines()
, re.split()
, partition()
등의 메서드를 능숙하게 활용하면 데이터 전처리와 분석을 효율적으로 수행할 수 있습니다.