반응형
python2 버전에는 pyhwp라는 모듈이 존재해 hwp 파일을 읽고 쓸 쑤 있다. 하지만 python3에는 구동하지 않기 때문에 머리를 싸매고 있었는데, olefile 모듈을 통해 읽을 수 있다는 것을 알아냈다. 간단하게 python3으로 hwp 파일을 읽는 법을 소개하겠다.
1. olefile 설치
https://olefile.readthedocs.io/en/latest/Install.html
여기로 들어가서 방법을 따라가면 된다. windows 한정으로 zip archive를 눌러 파일을 다운받아 안에있는 install.bat만 누르면 간단히 설치할 수 있기도 하다.
2. 무작정 열어보기
구조 파악을 위해 무작정 열어보자. 다음 코드를 치면 파일을 열어볼 수 있다.
import olefile
f = olefile.OleFileIO('test.hwp') #olefile로 한글파일 열기
encoded_text = f.openstream('PrvText').read() #PrvText 스트림 안의 내용 꺼내기 (유니코드 인코딩 되어 있음)
decoded_text = encoded_text.decode('UTF-16') #유니코드이므로 UTF-16으로 디코딩
print(decoded_text)
한글 파일 안에는 다양한 디렉토리가 존재한다. 파일의 속성들을 표시하기 위함이다. 우리가 필요한 것은 한글파일의 텍스트 부분이다. 텍스트 부분은 'PrvText'라는 디렉토리 안에 있다. 한 디렉토리 부분만을 여는 함수가 openstream이고 그 안의 내용을 읽으려면 openstream().read()를 이용하면 된다.
읽어 온 내용은 UTF-16으로 인코딩되어있는 상태이기 때문에 꼭 디코딩 과정을 거쳐야한다! 아니면 수많은 헥사코드와 마주하게 될 것이다.
3. 응용은 여러분들이
우연한 계기로 python3로 한글파일 여는법을 알게되고 사용해 보게 되었다. 우리나라의 특성상 hwp 파일을 마주할 일이 아직은 많이 있는데, 이 간단한 내용만 숙지하고 있으면 종종 써먹을 수 있을 것 같다.
반응형
'python' 카테고리의 다른 글
[pynecone] component 알아보기 - 시작 (0) | 2023.02.23 |
---|---|
[pynecone] 신비의 pynecone 시작 (0) | 2023.02.20 |