2014-07-21 29 views
1

docx, pdf 및 odt 파일을 가져 오기위한 가져 오기/내보내기 도구를 작성하고 있습니다. 책이 쓰여진 책.Python - 파일 (docx, pdf 및 odt)을 구문 분석하고 콘텐츠를 내 데이터 모델로 변환

우리는 이미 .epub 형식을위한 도구를 보유하고 있으며이를 넘어서는 기능을 확장하여 사이트 사용자의 유연성을 높일 수 있습니다.

지금까지 PDFMiner을 살펴본 결과, docx는 단지 openxml 형식을 기반으로하므로/document.xml이라는 단어는 본질적으로 모든 것을 포함하는 파일이며 lxml로 구문 분석 할 수 있습니다.

내가 가진 질문은 다음과 같습니다. 이러한 파일의 내용을 구문 분석하고 해당 내용에서 장 이름, 이미지 (있는 경우) 및 장 텍스트와 같은 항목을 추출하여 내용에 맞출 수 있기를 희망합니다.

Book --> o2m --> Chapter --> o2m --> Image 

분명히 PDFMiner는 TOC를 반환하는 .get_outlines() 함수를 가지고 있습니다. 그러나 반환 된 튜플 (장 번호 및 제목)을 해당 장의 실제 페이지에 연결할 수는 없습니다.

더 문제가되는 것은 docx/odt; 그것들은 attrs와 child 엘리먼트를 가진 단락들 - < \ w : sdt> - 엘리먼트이다.

필자는 이러한 파일 유형에서 구조의 일부를 추정하고 필요한 경우 해당 아이디어 (2 또는 3)를 책을 가져 오려는 사용자를 위해 제안 된 형식으로 적용 할 수있는 아이디어를 찾고 있습니다. 이러한 파일 형식 중 하나를 통해

+0

흥미로운 프로젝트입니다. 오픈 소스 프로젝트입니까? – Trimax

+1

@Trimax 불행히도 없습니다. 상업용 사이트입니다. –

+0

그것은 부끄러운 일입니다. 나는 colaborating을위한 프로젝트를 찾고 있습니다. – Trimax

답변

0

Textract은 지금까지 다른 파일 형식을 구문 분석하기 위해 내가 만난 최고의 도구입니다.

대부분의 파일 형식을 구문 분석 할 수 있습니다.

당신은 여기 Github

에서 프로젝트를 찾을 수 있습니다

은 공식 나는 .docx 파일을 읽을 수있는 도구를 찾고 있었다

(파이썬 3 대답은) 내가 할 수 있었다

0

documentation 여기에서 하나를 찾으십시오. http://etienned.github.io/posts/extract-text-from-word-docx-simply/

.docx 파일에서 텍스트를 가져 와서 문자열로 반환하면됩니다. 사이에 새로운 줄이 있기 때문에 별도의 단락은 여전히 ​​명확하게 구분되어 있지만 다른 모든 서식은 손실됩니다. 나는 이것이 끝과 발 노트의 손실을 포함 할 수 있다고 생각하지만 텍스트 본문을 원한다면 훌륭하게 작동합니다.

Windows 10과 OS X에서 모두 테스트를 마쳤으며 두 버전 모두에서 성공적으로 작동했습니다.여기가 수입 무엇 :

import zipfile 
try: 
    from xml.etree.cElementTree import XML 
    print("cElementTree") 
except ImportError: 
    from xml.etree.ElementTree import XML 
    print("ElementTree") 

편집 :

, 경우 함수의 몸에, 당신은

'word/footnotes.xml' 

또는

'word/endnotes.xml' 

'word/document.xml' 

교체

각주와 미주를 얻을 수 있습니다.

그러나 텍스트에있는 위치의 마커는 손실됩니다.