개발 같이해요/PYTHON

[ 파이썬 ] split() 함수 사용법 및 실제 프로젝트 예제

Rio - Moon 2024. 6. 7. 14:27
728x90
반응형

 

 

 

이번 포스팅에서는 파이썬 에서 쓰이는 split() 함수 를 예제를 통해 정리해보도록 하겠습니다.

 

Python에서 문자열을 조작할때 제일 많이 쓰이는 함수중 하나가 split() 함수입니다.
split() 함수의 기본적인 사용법과 예제, 그리고 실무 프로젝트에서 어떻게 활용할 수 있는지를 자세히 살펴보겠습니다.

 

 

그 외에 파이썬의 연사자 에 대해 궁금하시면 아래 포스팅을 같이 참고해주세요

 


[ 파이썬 ] 비교 연산자 문법 정리 ( ==, !=, >, <, >=, <= ) 및 예제

 

[ 파이썬 ] 비교 연산자 문법 정리 ( ==, !=, >, <, >=, <= ) 및 예제

비교 연산자는 두 값을 비교하는 데 사용되는 연산자 유형입니다. 이번 포스팅에서는 파이썬 에서 쓰이는 비교 연산자 를 정리해보도록 하겠습니다. # 1. 비교 연산자 란? 연산자는 두 피연산자

it-ability.tistory.com

 

 

[파이썬] 산술 연산자 문법 정리 ( + , - , * , / , % , **, // ) 및 예제

 

[파이썬] 산술 연산자 문법 정리 ( + , - , * , / , % , **, // ) 및 예제

산술 연산자 란 덧셈 , 뺄셈 등과 같이 산술 또는 수학 연산을 수행하는 데 사용되는 특수 기호입니다. 이번 포스팅에서는 파이썬 에서 쓰이는 산술 연산자 를 정리해보도록 하겠습니다. # 1. 산

it-ability.tistory.com

 

[ 파이썬 ] 논리 연산자 문법 정리 ( AND,OR,NOT ) 및 예제

 

[ 파이썬 ] 논리 연산자 문법 정리 ( AND,OR,NOT ) 및 예제

논리 연산자는 주로 bool 값(True 또는 False)을 반환 할때사용되는 연산자 유형입니다. 이번 포스팅에서는 파이썬 에서 쓰이는 논리 연산자 를 예제를 통해 정리해보도록 하겠습니다. 비교연산자

it-ability.tistory.com

 

 

[개발 같이해요/PYTHON] - [ 파이썬 ] 할당 연산자 문법 정리 ( =,+=,-=,/=,//=,%=,*=,**= ) 및 예제

 

[ 파이썬 ] 할당 연산자 문법 정리 ( =,+=,-=,/=,//=,%=,*=,**= ) 및 예제

저번포스팅으로 비교,산술,논리 연산자에 대해 알아보았습니다.이번 포스팅에서는 파이썬 에서 쓰이는 할당 연산자 를 예제를 통해 정리해보도록 하겠습니다.  할당 연산자(Assignment Operators)는

it-ability.tistory.com

 


 

 

# 1. split() 함수 란?

 

split() 함수는 문자열을 특정 구분자를 기준으로 나누어 리스트로 반환하는 함수입니다.

기본적으로 공백 문자를 구분자로 사용하지만 다른 구분자를 지정할 수도 있습니다.

먼저 기본문법을 살펴보도록 하겠습니다.

 

 

 

기본 문법

 

str.split(separator, maxsplit)

 

 

  • separator (선택 사항): 문자열을 나눌 기준이 되는 구분자입니다. 기본값은 모든 공백 문자입니다.
  • maxsplit (선택 사항): 나눌 최대 횟수입니다. 기본값은 -1로, 제한 없이 나눕니다.

 

 

# 2. split() 함수 사용법 및 예제

 

그럼 split()함수가 어떻게 사용되는지, 여러 예제를 통해 알아보도록 하겠습니다.

 

 

 

기본 사용법

 

text = "Hello world"
words = text.split()
print(words)

# 출력: ['Hello', 'world']

 

 

 

구분자 지정

 

text = "사과,바나나,체리"
fruits = text.split(",")
print(fruits)

# 출력: ['사과', '바나나', '체리']

 

 

최대 분할 횟수 지정

 

text = "하나 둘 셋 넷"
limited_split = text.split(" ", 2)
print(limited_split)

# 출력: ['하나', '둘', '셋 넷']

 

 

 

 

# 3.실무 프로젝트 예시

 

이제 split() 함수 를 어떻게 쓰셔야 할지 감을 잡으셨나요? 잡으셨다면, 실제 실무 프로젝트 예시로 설명드리도록 하겠습니다.

 

 

프로젝트 - 로그 파일 분석

 

로그 파일은 일반적으로 각 라인이 특정 형식으로 되어 있으며, split() 함수를 사용하여 필요한 정보를 추출할 수 있습니다.
예를 들어, 웹 서버 로그 파일에서 IP 주소와 요청 URL을 추출해 보겠습니다.

# 로그파일
log_file = """
192.168.1.1 - - [01/Jan/2024:10:00:00 +0000] "GET /index.html HTTP/1.1" 200 1024
192.168.1.2 - - [01/Jan/2024:10:05:00 +0000] "POST /submit-form HTTP/1.1" 404 512
"""

# 로그 파일을 줄 단위로 나눕니다.
log_lines = log_file.strip().split("\n")

# 각 줄에서 IP 주소와 요청 URL을 추출합니다.
for line in log_lines:
    parts = line.split()
    ip_address = parts[0]
    request = parts[5] + " " + parts[6]
    
    print(f"IP 주소: {ip_address}, 요청: {request}")
    
# 출력:
# IP 주소: 192.168.1.1, 요청: "GET /index.html
# IP 주소: 192.168.1.2, 요청: "POST /submit-form

 

split() 함수를 사용하여 로그 파일의 각 줄을 공백을 기준으로 분할하고, IP 주소와 요청 URL을 추출했습니다.

 

데이터 전처리 - CSV 파일 데이터 처리

 

CSV 파일은 콤마(,)로 구분된 값들이 저장된 텍스트 파일로, 데이터 분석 및 처리에서 자주 사용됩니다.

split() 함수를 사용하여 CSV 파일의 각 줄을 분할하고 데이터를 처리하는 예제를 살펴보겠습니다.

#CSV 데이터
csv_data = """
name,age,city
Alice,30,New York
Bob,25,Los Angeles
Charlie,35,Chicago
"""

# CSV 파일을 줄 단위로 나눕니다.
lines = csv_data.strip().split("\n")

# 첫 줄은 헤더로 처리합니다.
header = lines[0].split(",")
print(f"헤더: {header}")

# 나머지 줄은 데이터로 처리합니다.
for line in lines[1:]:
    fields = line.split(",")
    print(f"이름: {fields[0]}, 나이: {fields[1]}, 도시: {fields[2]}")
    
# 출력:
# 타이틀: ['name', 'age', 'city']
# 이름: Alice, 나이: 30, 도시: New York
# 이름: Bob, 나이: 25, 도시: Los Angeles
# 이름: Charlie, 나이: 35, 도시: Chicago

 

이 코드에서는 CSV 데이터를 줄 단위로 분할한 후, 각 줄을 다시 콤마(,)를 기준으로 분할하여 필드를 추출했습니다.

 

리뷰 분석 - 텍스트 파일에서 특정 단어 빈도수 계산

 

대량의 텍스트 데이터를 처리할 때, 특정 단어의 빈도수를 계산하는 작업이 필요할 수 있습니다.

예를 들어, 고객 리뷰 텍스트에서 긍정적이거나 부정적인 단어의 빈도수를 계산해 보겠습니다.

reviews = """
The product is great and works perfectly.
I had a terrible experience with the customer service.
Excellent quality and fast delivery.
Very disappointing and not worth the price.
"""

# 단어 빈도수를 저장할 딕셔너리
word_count = {}

# 리뷰 텍스트를 줄 단위로 나누고 각 줄을 다시 단어 단위로 나눕니다.
for line in reviews.strip().split("\n"):
    words = line.split()
    for word in words:
    # 단어를 소문자로 변환하여 일관성 유지
        word = word.lower().strip(".,")
        if word in word_count:
            word_count[word] += 1
        else:
            word_count[word] = 1

# 특정 단어들의 빈도수 출력
keywords = ["great", "terrible", "Excellent", "disappointing"]
for keyword in keywords:
    print(f"'{keyword}': {word_count.get(keyword, 0)}")
    
# 출력:
# 'great': 1
# 'terrible': 1
# 'excellent': 1
# 'disappointing': 1

 

이 코드에서는 리뷰 텍스트를 줄 단위로 분할하고, 각 줄을 다시 단어 단위로 분할하여 단어의 빈도수를 계산했습니다.

각 단어를 소문자로 변환하고 구두점을 제거하여 빈도수 계산의 정확성을 높였습니다.

 

# 4. 마무리

 

split() 함수가 실무 프로젝트에서 어떻게 활용될 수 있는지를 잘 보여줍니다. CSV 데이터 처리와 텍스트 분석은 데이터 과학 및 데이터 엔지니어링에서 매우 일반적인 작업으로, split() 함수는 이러한 작업을 보다 쉽게 수행할 수 있게 해줍니다.

이를 통해 데이터 처리 작업을 효율적으로 수행할 수 있습니다.

 

 

 

 

반응형