본문 바로가기
python

Python 3버전도 한글파일을 읽을 수 있다!

by 야호호코코 2019. 7. 21.
반응형

 python2 버전에는 pyhwp라는 모듈이 존재해 hwp 파일을 읽고 쓸 쑤 있다. 하지만 python3에는 구동하지 않기 때문에 머리를 싸매고 있었는데, olefile 모듈을 통해 읽을 수 있다는 것을 알아냈다. 간단하게 python3으로 hwp 파일을 읽는 법을 소개하겠다.

 

1. olefile 설치

 

 https://olefile.readthedocs.io/en/latest/Install.html 

 

How to Download and Install olefile — olefile 0.46 documentation

Download and Install To use olefile with other Python applications or your own scripts, the simplest solution is to run pip install olefile or easy_install olefile, to download and install the package in one go. Pip is part of the standard Python distribut

olefile.readthedocs.io

 여기로 들어가서 방법을 따라가면 된다. 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으로 인코딩되어있는 상태이기 때문에 꼭 디코딩 과정을 거쳐야한다! 아니면 수많은 헥사코드와 마주하게 될 것이다.

 

hwp 파일 삭 만들어주고 실행시키면?

 

pyhwp 없이 hwp읽어오기 성공!

3. 응용은 여러분들이

 

 우연한 계기로 python3로 한글파일 여는법을 알게되고 사용해 보게 되었다. 우리나라의 특성상 hwp 파일을 마주할 일이 아직은 많이 있는데, 이 간단한 내용만 숙지하고 있으면 종종 써먹을 수 있을 것 같다.

반응형

'python' 카테고리의 다른 글

[pynecone] component 알아보기 - 시작  (0) 2023.02.23
[pynecone] 신비의 pynecone 시작  (0) 2023.02.20