본문 바로가기
Python/Python_basic

[Python] 문자열 파싱(String Split By Delimiter)

by Mr.DonyStark 2023. 11. 2.

□ Python split()함수는 자주 이용됨
string.split(separator, maxsplit) : 구분자, 분할개수 (개수 생략가능)

string.replace(oldvalue, newvalue, count) : 타겟, 변환 값, 개수 (개수 생략가능)
기본분리 지정자는 공백
문자열을 구분 후 리스트로 변환

□ import re : 정규표현식 라이브러리

#예제1 : 문장을 공백으로 구분 후 단어 개수를 출력하는 함수
int_str = "Suppose we have few words that are sparated by spaces"  #문장 변수

a = int_str.split(" ") #공백기준으로 분리
print(a)
print(f'결과 : {len(a)}')

#예제2 : 입력받은 값 분리
dt = input('문장을 입력해주세요')
b = dt.split( ) #공백기준으로분리
print(b)
print(f'결과 : {len(b)}')

#예제3 : 입력받은 값 분리
dt2 = input('문장을 입력해주세요')
c = dt2.split('&') #&기준으로분리
print(c)
print(f'결과 : {len(c)}')

#에제4 : 텍스트 임포트 후 텍스트 파일 공백 구분 후 단어 개수 출력. 콤마의 경우 두 단어로 취급
#방법1
def cnt_word_first(filepath):           #함수정의
    with open(filepath, 'r') as file : #파일을 불러와 조회만 하겠음
        txt = file.read()
    replace_txt = txt.replace(",", " ") #, 공백으로 대체
    print(replace_txt)
    splt_word = replace_txt.split( ) #공백으로 쪼개기
    cnt_word = len(splt_word)
    return cnt_word                  #함수 호출시 리턴값

print(f'방법1 결과 : {cnt_word_first("C:/Users/User/Downloads/python_basic_1.5/2.QnA/source/22-1.txt")}')
#방법2
import re #정규표현 라이브러리 호출

def cnt_word_second(filepath):           #함수정의
    with open(filepath, 'r') as file : #파일을 불러와 조회만 하겠음
        txt = file.read()
    #정규표현
    txt_list = re.split(" |, ", txt)   #정규 표현식 공백을 |,로 분할
    return(len(txt_list))
print(f'방법2 결과 : {cnt_word_second("C:/Users/User/Downloads/python_basic_1.5/2.QnA/source/22-1.txt")}')