본문 바로가기

IT/파이썬 Python

[파이썬] 텍스트 변수에서 따옴표 제거하기

반응형

파이썬으로 텍스트 파일을 처리하다 보면, 읽어 오는 파일 안에 숫자, 문자 등이 혼용되어 있는 경우가 있습니다.

그리고 텍스트 파일 내의 문자는 큰따움표나 작은따옴표 (" 혹은 ') 로 씌여져 있을 때가 종종 있죠. 예를 들면 아래 처럼요.

 

"Michael Jackson";34;"Seoul"

"Janet Jackson";24;"Busan"

 

파이썬에서 위 텍스트를 파싱하고 난 결과물에는 따옴표가 들어가게 되는데요, 문자열을 검사해서 따옴표를 없애주는 간단한 함수를 소개합니다. (제가 만든 것은 아니고 인터넷에서 이전에 검색해서 찾은 것입니다)

 

def dequote(s):
    """
    If a string has single or double quotes around it, remove them.
    Make sure the pair of quotes match.
    If a matching pair of quotes is not found, return the string unchanged.
    """
    if (s[0] == s[-1]) and s.startswith(("'", '"')):
        return s[1:-1]
    return s

 

간단히 설명을 드리면 다음과 같습니다.

  • 파이썬의 문자열 인덱싱을 이용해서 문자열의 첫 글자와 마지막 글자가 같은지 비교. (따옴표로 감싸진 문자열이라면 첫 글자와 마지막 글자가 같은 종류의 따옴표 일 것이므로)
  • startswith 메서드를 사용해서 문자열의 첫 글자가 따옴표인지 확인
  • 문자열 슬라이싱을 사용해서, 첫 글자와 마지막 글자를 제외하고 리턴

굉장히 간단한 함수이지만 파이썬의 아주 강력한 텍스트 처리 기능을 알 수 있습니다.

 

반응형