본문 바로가기

코딩

파이썬 문자열 정리하기 (공백제거, 숫자 제거)

명언 데이터를 가져왔는데 그대로 쓸수가 없어서 파이썬으로 문자열로 정리했다. 문장 앞에 있는 숫자를 제거하고, 명언 출처 부분을 통일성있게 바꿔보았다.

 

 

원본소스 1

1. 삶이 있는 한 희망은 있다  -키케로
2. 산다는것 그것은 치열한 전투이다.  -로망로랑
3. 하루에 3시간을 걸으면 7년 후에 지구를 한바퀴 돌 수 있다. -사무엘존슨
4. 언제나 현재에 집중할수 있다면 행복할것이다. -파울로 코엘료
5. 진정으로 웃으려면 고통을 참아야하며 , 나아가 고통을 즐길 줄 알아야 해 -찰리 채플린

 

원본소스 2

193. 마음이 좁은 자는 생각이 극단에 흐른다 / 라이라마

194. 일곱 번의 70배까지 용서하라 / 예수 그리스도

195. 위대한 사람은 목적을, 소인들은 공상을 가지고 있다 / 와싱턴 어빙

196. 성공의 비밀은 목표의 지속성에 있다 / 벤저민 디즈라엘리

197. 사는 게 지겹다면 그것은 당신이 그렇게 만든 것이다 / 레오 부스카글리아

 

 

파이썬 문자열 정리하기 소스 

import re

filename = "data_raw.txt" # 처리할 파일 경로

f = open(filename)
lines = f.readlines()

for line in lines:
  line = line.replace(" ,",",");
  line = line.replace(" .",".");
  line = line.replace("-", " / ");
  line = ' '.join(line.split()) # 2개이상 공백시 1개로 치환
  matchObj = re.search("(\d+)\.\s+",line)
  if matchObj != None: 
    line = line.replace(matchObj.group(), "")
  line = line.strip()

  if line :
    print(line)   

f.close()

정규표현식을 쓰는법을 아직도 잘 모르겠다. 구글링해서 짜집기 해봤는데 제대로 돌아가는것 같아서 일단 만족.  아직 완벽하진 않은데 적어도 저 두 개 원본 소스는 잘 변환이 된다.

 

 

실행해보았다.

python phrase.py

 

변환된 샘플 결과 :

삶이 있는 한 희망은 있다 / 키케로
산다는것 그것은 치열한 전투이다. / 로망로랑
하루에 3시간을 걸으면 7년 후에 지구를 한바퀴 돌 수 있다. / 사무엘존슨
언제나 현재에 집중할수 있다면 행복할것이다. / 파울로 코엘료
진정으로 웃으려면 고통을 참아야하며, 나아가 고통을 즐길 줄 알아야 해 / 찰리 채플린
마음이 좁은 자는 생각이 극단에 흐른다 / 라이라마
일곱 번의 70배까지 용서하라 / 예수 그리스도
위대한 사람은 목적을, 소인들은 공상을 가지고 있다 / 와싱턴 어빙
성공의 비밀은 목표의 지속성에 있다 / 벤저민 디즈라엘리
사는 게 지겹다면 그것은 당신이 그렇게 만든 것이다 / 레오 부스카글리아

 

좀 신경쓰이는 것들이 몇개 있는데. 일단은 여기서 넘어가겠음..... =ㅅ=;;