본문 바로가기

프로젝트/Project1

Toy Project 1 (4) - HWP파일 XML로 바꾸기

지난 시간에 이어서 hwp5proc를 이용하여 hwp를 xml로 변환해보겠다. 근데 또 이 과정에서 많은 에러가 있었다.

터미널에서는 hwp5proc가 잘 동작하지만 jupyter notebook에서는 안 되는 에러가 발생했다.

os.system을 사용해서 그냥 hwp5proc를 사용하면 xml 파일이 생성되지만 0바이트 빈 파일이 생성되는 에러가 발생했다. 아래의 링크를 참고하여 이 문제를 해결했다.

 

https://stackoverflow.com/questions/48484152/os-system-returns-error-code-32512-python

(분명 터미널에서 PATH 설정을 추가했는데 jupyter notebook에서는 적용이 안 되는 대참사가...)

 

exefile = '/Users/jason/.local/bin/hwp5proc'

 

이렇게 hwp5proc 명령어 앞에 직접 위치를 추가해서 코드를 실행했다.

 

import os
path = '/Users/jason/Test/code/test1'
exefile = '/Users/jason/.local/bin/hwp5proc'

res = []
for root, dirs, files in os.walk(path):
    rootpath = os.path.join(os.path.abspath(path), root)
    for file in files:
        filepath = os.path.join(rootpath, file)
        res.append(filepath) 

    for result in res:
        mXml = result[:-4] + ".xml"
        mHwp = result
        cmd = exefile + " xml " + mHwp + " > " + mXml
        print(cmd)
        os.system(cmd)

 

위의 코드는 xml 변환 코드이고 아래는 실행 결과이다.

 

 

os.system 안에 들어가는 명령어를 출력한 결과

 

 

xml 파일로 모두 저장되었다.

 

 

term1.xml 파일을 열었을 때 term1.hwp 파일의 표 안의 내용이 모두 잘 추출되었다.

 

 

 

다음 시간에는 변환된 xml 파일 오류가 없는지 좀 체크해보고 필요한 내용만 포함된 파일로 변환하는 작업을 할 예정이다.