반응형
인터넷 등에서 내려받은 텍스트 파일을 아마존 킨들같은 e-book리더나, 태블릿 PC에서 볼 때 원치않는 개행문자때문에 엉뚱한 곳에서 행이 나뉘는 경우가 많습니다. 예를 들면 , 스캔해서 OCR로 인식한 문서들의 경우 특정 길이에서 무조건 다음 행으로 넘어가는데 이것이 우리가 보는 ebook리더의 화면 넓이와 맞이 않아서 보기가 좋지 않게 되는 거죠.
Calibre 같은 툴을 쓰면 형식변환 뿐 아니라 이런 작업을 해 주기도 하는데, 아무래도 로직을 마음대로 만질 수가 없어서 제가 간단한 파이썬 스크립트를 만들어 보았습니다.
간단한 스크립트이므로 필요에 따라 로직을 얼마든지 수정할 수 있습니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | import sys fr=open(sys.argv[1], 'r') fw=open(sys.argv[2], 'w') while True: r_line = fr.readline() if not r_line: break # remove newline unless following 3 conditions : # 1. length is shorter than 15 # 2. last 2 characters are '.\n' (. + newline) # 3. last 2 characters are '"\n' if len(r_line) > 15 and r_line[-2:] != '.\n' and r_line[-2:] != '"\n': outline=r_line[:-1]+' ' else: outline = r_line fw.write(outline) fr.close() fw.close() | cs |
주석 부분에 있는 3가지 조건에 해당하지 않으면 무조건 문장의 끝에 있는 개행문자 (newline character) 를 삭제합니다. 조건은
- 문장의 글자수가 15보다 짧거나,
- 문장의 마지막이 . (마침표) 와 개행문자로 되어 있거나,
- 문장의 마지막이 " (따옴표) 와 개행문자로 되어 있는 경우
입니다. 사용하시는 분들이 필요한 조건에 따라 간단히 수정하실 수 있으시겠죠?
위 스크립트는 파이썬의 강력한 텍스트 관련 기능을 사용해서 매우 쉽게 쓰여졌습니다.
반응형