Appia의 IT세상

파이썬[Python] 문자열에서 공백 제거하기(replace, lstrip, rstrip,strip) 본문

Python/Python 기본

파이썬[Python] 문자열에서 공백 제거하기(replace, lstrip, rstrip,strip)

Appia 2020. 5. 11. 07:59
반응형

파이썬[Python] 문자열에서 공백 제거하기(replace, lstrip, rstrip,strip)

 

이번 포스팅은 문자열에 관련된 이야기를 조금 할려고 합니다. 최근에 특정 통신 정보를 받아 오는 스크립트를 만들었습니다. 하지만, 왼쪽에 공백 글자가 너무 많아서 생각보다 많은 번거로움을 만들었습니다. 첫번째는 데이터의 사이즈가 매우 커졌고, 두번째로는 앞에서 공백 문자에 대한 처리가 필요했었습니다. 그래서 이번 포스팅에서는 문자열에서 공백을 제거하는 방법에 대해서 이야기를 하고자 합니다. 

 

공백을 제거하는 특정 함수들이 존재합니다. 다양한 방법으로 문자열 중에 공백을 제거 하는 방법을 살펴보도록 하겠습니다.  

 

replace 이용 

먼저 replace 메소드를 잠깐 이용해보도록 하겠습니다. replace는 문자열에서 원하는 단어등을 다른 단어로 바꾸는 기능을 합니다. 그럼 공백을 없애기 위해서 " "를 ""로 바꿔 보도록 하겠습니다. 다음 코드를 참조해보겠습니다. 

example)

text = "    what are you doing? "
 
text1 = text.replace(" ","")
 
print(text1)
cs

result)

whatareyoudoing?
cs

위의 결과는 분명 공백을 제거하였습니다. 하지만, 살짝 아쉬움이 남아 있습니다. 실제 저뿐 아니라 대부분 사람들은 위의 코드의 목적은 왼쪽의 공백만 없애는 것이었는데, 모든 공백을 없애는 결과를 얻었습니다. 그럼 원하는 목적을 달성하기 위해서는 다음의 부분을 참조 부탁드리겠습니다. 

 

lstrip, rstrip, strip 메소드 이용 

위의 결과의 아쉬움을 달래기 위해서 다른 함수를 이용해보도록 하겠습니다. 실제 좌우 공백을 제거하는 함수로 다음과 같은 함수가 많이 이용됩니다. 

 

lstrip - 왼쪽에 있는 공백 제거

rstrip - 오른쪽에 있는 공백 제거 

strip - 왼쪽 오른쪽에 있는 공백 제거 

 

그럼 위의 함수를 토대로 한번 코드를 작성해보도록 하겠습니다. 

example)

text = "    what are you doing? "
 
text1 = text.lstrip()
 
print(text1)
cs

result) 

what are you doing? 
cs

이제 원하는 결과를 얻었습니다. 그럼 조금 더 다른 공백을 심도 있게 다루어 보도록 하겠습니다. 

example) 

text = "    what are you doing?     "
 
ltext = "   left margine "
 
rtext = "right margine     "
 
result = rtext + ltext
 
print(result)
 
result = rtext.rstrip() + ltext.lstrip()
 
print(result)
 
result = "+"+text+"+"
 
print(result)
 
result = "+"+text.strip()+"+"
 
print(result)
cs

result) 

# 공백 제거 전 결과  
 
right margine        left margine 
 
# lstrip, rstrip 사용 결과 
 
right margineleft margine 
 
# 공백 제거 전 결과 
 
+    what are you doing?     +
 
# strip 사용 결과 
 
+what are you doing?+
cs

위와 같은 방식으로 왼쪽 오른쪽 공백을 제거할 수 있습니다. 매우 기본적인 방법이지만 이런 방법으로 사용이 가능합니다. 

example)

text = "    what are you doing?     "
 
print(text[4:])
cs

result) 

what are you doing?    
cs

물론 위의 방식은 공백의 갯수를 알고 있을 경우에만 사용할 수 있어 제약은 있지만, 함수를 사용하지 않기 때문에 성능적인 측면에 이득이 있지 않을까요? 

 

오늘은 좌우 공백을 제거하는 방법에 대해서 살펴봤습니다. 문자열에 있어서 공백은 매우 좋은 구별자이기도 합니다. 하지만, 때론 의미 없는 값을 가지기도 합니다. 따라서, 의미 없는 값을 가질 때에는 위와 같은 함수를 이용해서 삭제 하는 것도 좋은 방법입니다. 

 

혹시 궁금하신 것이 있으면 언제든지 댓글 및 방명록에 글 남겨 주시길 바랍니다. 공감은 저에게 매우 큰 힘이 됩니다. 감사합니다. 

 

반응형
Comments