Last active
August 22, 2017 02:47
-
-
Save nattybear/766e2081ed44c0e6a1ad158092940249 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
#-*- coding: utf-8 -*- | |
# 파이썬 버전 2로 실행하는 것이 좋다. | |
from re import compile | |
from sys import argv | |
# RT 태그를 찾는 정규식 | |
p1 = compile('<RT>.*?</RT>') | |
# 모든 태그를 찾는 정규식 | |
p2 = compile('<.*?>') | |
# 모든 1개 이상의 개행을 찾는 정규식 | |
p3 = compile('\n+') | |
# 문자열 '\n'을 찾는 정규식 | |
p4 = compile(r'\\n') | |
# 인자로 입력한 파일 이름을 이름과 확장자를 구분하여 저장 | |
name, ext = argv[1].split('.') | |
# 인자로 입력한 파일을 바이너리 읽기 모드로 연다. | |
# 이 부분 때문에 파이썬 버전 2로 실행하는 것을 권장 | |
# 파일 포인터를 열고 파일의 내용을 b 변수에 저장하고 | |
# 파일 포인터를 다시 닫아준다. | |
f = open(argv[1], 'rb') | |
b = f.read() | |
f.close() | |
# 치환하는 순서가 중요하다. | |
# RT 태그를 먼저 지워주지 않으면 | |
# 다른 태그를 지울 때 RT 태그가 없어지기 때문에 | |
# RT 태그의 내용을 지울 수가 없다. | |
b = p1.sub('', b) | |
b = p2.sub('', b) | |
# 개행은 동일한 작업을 여러번 작성하는 것은 | |
# 프로그래밍적인 사고 방식이 아니다. | |
# 기본적으로 프로그래밍은 사람이 하기 귀찮은 | |
# 반복적인 일을 최대한 단순화 해주는 것이 목표이다. | |
# 따라서 정규식을 이용해서 개행이 1번 이상 겹쳐 있는 것을 | |
# 모두 찾아서 개행 한개로 바꿔주기만 하면 | |
# 단 한줄로 처리 할 수 있다. | |
b = p3.sub('\n', b) | |
# 문자열 '\n'을 찾아서 실제 개행으로 변환한다. | |
b = p4.sub('\n', b) | |
# 작업이 모두 끝났다. | |
# 파일 이름에 구분 할 수 있는 문자열을 추가하고 | |
# 확장자는 보존한다. | |
# 변환한 내용을 새 파일에 저장하고 파일 포인터를 닫는다. | |
f = open(name + '_removed.' + ext, 'wb') | |
f.write(b) | |
f.close() | |
# 정상적으로 완료되었다는 사실을 사용자에게 안내한다. | |
print('[*] Removing completed!') |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment