반응형
파이썬으로 텍스트 파일을 처리하다 보면, 읽어 오는 파일 안에 숫자, 문자 등이 혼용되어 있는 경우가 있습니다.
그리고 텍스트 파일 내의 문자는 큰따움표나 작은따옴표 (" 혹은 ') 로 씌여져 있을 때가 종종 있죠. 예를 들면 아래 처럼요.
"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 메서드를 사용해서 문자열의 첫 글자가 따옴표인지 확인
- 문자열 슬라이싱을 사용해서, 첫 글자와 마지막 글자를 제외하고 리턴
굉장히 간단한 함수이지만 파이썬의 아주 강력한 텍스트 처리 기능을 알 수 있습니다.
반응형