본문 바로가기
파이썬/파이썬 기초

파이썬 Strip 함수 문자열 공백 제거 공백 지우기 방법

by 이박수 2024. 9. 19.

 

파이썬에서 문자열을 처리해야 하는 경우가 종종 있다.(아니 아주 많다)

특히 크롤링을 하거나 외부 데이터를 가져와서 작업하는 경우에는 특히 공백을 제거해야 하는 경우가 더 많다.

그래서 오늘은 파이썬에서 Strip 함수를 이용하여 문자열의 공백을 제거하는 방법을 알아보도록 하겠다.

 

파이썬 Strip() 함수 문자열 공백 제거

아래와 같은 문자열이 있다고 생각해보자.

text = " 파이썬 문자열 공백 제거 방법 "

여기에서 문자열의 공백을 한번 제거해보자. 여기서 헷갈려서는 안되는 부분이 있다. 바로 띄워쓰기와 공백을 헷갈리면 안된다.

위 문장에서는 2개의 공백이 있다. 하지만 문장 중간중간의 공백은 사실 띄워 쓰기이지 공백이 아니다.

오늘 다룰 strip() 함수는 공백을 제거할 수 있지만 띄워 쓰기는 제거하지 못한다. 그러니 헷갈리면 안된다.

우선 제거부터 해보자. 아래의 코드를 실행시켜 보자.

text = " 파이썬 문자열 공백 제거 방법 "
print(text)

text = text.strip()
print(text)

 

text는 string 변수이고, string 타입의 변수에는 strip() 라는 속성이 있다( 용어가 맞는지는 잘 모르겠다) 아무튼. strip()을 이용하면 공백을 제거할 수 있다. 결과를 살펴보자.

결과가 차이가 나는 것을 알 수 있다. 첫번째 결과는 앞에 공백이 제거 되지 않아 한칸이 들어갔고, strip()를 이용하여 공백을 제거한 두번째 print()에서는 공백 없이 바로 출력된것을 알 수 있다.

이렇게 strip() 함수는 공백을 제거할뿐 문장의 띄어쓰기는 공백이 아니므로 제거하지 못한다는 것을 기억하자.

파이썬 lstrip(), rstrip() 함수를 이용한 공백제거

lstrip() 함수는 왼쪽의 공백만 제거하는 함수이다. 위 예제에서 strip() 대신 lstrip()로 변경해보자.

text = " 파이썬 문자열 공백 제거 방법 "
print(text)

text = text.lstrip()
print(text)

결과는 따로 확인하지도 않아도 명확할 것이다. lstrip()은 왼쪽의 공백만 제거한다.

그럼 반대의 경우도 있을 것이다.바로 rstrip()이다. 이건 오른쪽 공백만 제거한다

text = " 파이썬 문자열 공백 제거 방법 "
print(text)

text = text.rstrip()
print(text)

이 결과도 확인해보길 바란다. 아마 차이가 확연하게 보일 것이다.

text = " 파이썬 문자열 공백 제거 방법 "

ltext = text.lstrip()
rtext = text.rstrip()

print("text : ", text)

print("ltext :", ltext)

print("rtext :" ,rtext)

이렇게 입력하고 결과를 보면 더 정확할 것 같다

파이썬 strip()는 언제 사용하는 것일까?

파이썬을 이용하여 텍스트를 다루다보면 종종 strip() 함수를 사용할 경우가 생긴다. 그런데 텍스트에서 공백이 생기는 경우는 어떤 경우일까?

나의 경우 텍스트마이닝을 하면서 strip() 함수를 많이 사용했던 기억이 난다. 평소에는 거의 사용할 일이 없었지만 텍스트를 다루는 경우 종종 사용했었다.

기억을 더듬어 보면 strip() 함수만 단독으로 사용하지 않고, split() 함수와 함께 사용했었다.

split() 함수는 문자열을 특정 기준으로 잘라서 리스트로 넣는 함수이다. 리스트는 파이썬에서 아주 많이 사용하는 데이터타입인데 이건 반드시 알아야 한다. 리스트는 나중에 다시 한번 다루도록 하겠다.

예제를 보면서 설명하도록 하겠다. 아래의 코드를 입력해보자.

text = "파이썬 | 문자열 | 공백 | 제거 방법"

text_list = text.split("|")
print(text_list)

어떤 문자열이 ' | '를 기준으로 구분되어 있다고 가정하자. 저런 문자열이 있다고 할때 ' | ' 를 기준으로 문자열을 잘라보겠다. 이 때 사용하는 함수가 split() 함수이다. 특정한 기준을 정하여 문자열을 분리하고, 잘라진 문자열은 리스트로 반환한다.

결과를 보면 아래와 같다. ' | ' 를 기준으로 잘랐기때문에 공백이 존재하는 것을 알 수 있다.

보통 문자열을 다룰때 어떤 문장을 특정 기호를 기준으로 자른다고 한다면 보통 split() 함수를 많이 사용한다. 그 과정에서 위와 같이 공백이 생길 수 있다.

이렇게 잘려진 단어들은 공백을 제거해줘야 한다. 리스트에서는 문자열을 다룰수 없기 때문에 하나하나 꺼내서 잘라주고 다시 리스트에 넣어줘야 한다.

아래의 코드를 실행시키고 결과를 살펴보자.

text = "파이썬 | 문자열 | 공백 | 제거 방법"

text_list = text.split("|")
print(text_list)

new_list = []

for i in text_list:
    i = i.strip()

    new_list.append(i)

print(new_list)

공백을 제거하고 다시 리스트에 넣어주었다. 보통 이렇게 많이 사용했던것으로 기억난다.

데이터를 가져오다 보면 여러가지 방식으로 데이터를 구분하는 경우가 많다. 구분값을 찾아서 split() 함수로 데이터를 분리한다음 strip() 함수로 공백을 제거하면 된다.

경험상 lstrip(), rstrip()를 구분하여 사용한 경우는 별로 없는 것 같다. 그냥 strip() 한방이면 끝난다.

파이썬 split() , strip()함수를 이용한 문자열 다루기

strip() 함수를 사용할 경우 종종 split() 함수와 함께 사용하는 경우가 많았다. 그래서 split() 함수도 함께 사용법을 알아두면 좋을 것이다.

split() 함수는 문자열을 분리시키는 함수이다. 어떤 문장이 존재할때 문장을 특정 기준으로 나누어 준다고 이해하면 된다.

text = "파이썬 | 문자열 | 공백 | 제거 방법"

text_list = text.split()
print(text_list)

위 코드를 입력하고 실행해보자. ' | ' 가 들어간 문자열을 split()으로 분리시켜 보았다. 구분하는 기준을 정하지 않고 그냥 split()를 그대로 사용하였다. 그 결과는 아래와 같다.

즉, split() 함수를 아무런 구분값을 넣지 않고 분리하면 띄워쓰기 기준으로 분리를 해버린다. 즉 스페이스 기준으로 분리를 해버리는 것이다. 그래서 ' | ' 도 리스트에 들어간 것이다.

그렇다면 처음 예제를 적용하면 어떻게 될까? 앞 뒤로 공백이 있던 문자열 말이다.

text = " 파이썬 문자열 공백 제거 방법 "

text_list = text.split()

print(text_list)

공백을 기준으로 문자를 분리하기때문에 단어 앞에 공백이 있다고 하더라도 큰 차이가 없이 분리가 되는것을 알 수 있다.

이렇게 단순히 띄어쓰기로 구분이 된 문장의 경우 split() 함수를 이용하면 편리하다.

다만 모든 데이터가 일반 문장의 형식으로 되어 있지 않기때문에 split() 함수와 strip() 함수를 이용하여 분리를 시켜야 하는 경우를 종종 경험하게 될 것이다.

이 정도면 충분히 이해하지 않았을까 한다.

다음에도 다른 주제로 돌아오겠다.