2016-10-23 4 views
1

Я использую скрипт python для преобразования файла file.doc в файл. текст. Мой код:Как установить antiword на windows и использовать его в python

from subprocess import Popen, PIPE 
from docx import opendocx, getdocumenttext 

#http://stackoverflow.com/questions/5725278/python-help-using-pdfminer-as-a-library 
from pdfminer.pdfinterp import PDFResourceManager, PDFPageInterpreter 
from pdfminer.converter import TextConverter 
from pdfminer.layout import LAParams 
from pdfminer.pdfpage import PDFPage 
from cStringIO import StringIO 
import os 

def document_to_text(filename, file_path): 
    if filename[-4:] == ".doc": 
     cmd = ['antiword', file_path] 
     p = Popen(cmd, stdout=PIPE) 
     stdout, stderr = p.communicate() 
     return stdout.decode('ascii', 'ignore') 
    elif filename[-5:] == ".docx": 
     document = opendocx(file_path) 
     paratextlist = getdocumenttext(document) 
     newparatextlist = [] 
     for paratext in paratextlist: 
     newparatextlist.append(paratext.encode("utf-8")) 
     return '\n\n'.join(newparatextlist) 

Для того, чтобы использовать сценарий выше мне нужно установить «Antiword», но проблема в том, что я не знаю, как это сделать. Вот ссылка, где скачать 'antiword': http://www-stud.rbi.informatik.uni-frankfurt.de/~markus/antiword/

Может кто-нибудь мне помочь?

+0

Если вы читаете страницу, связанную с, вы найдете [Инструкция по установке] (http://www-stud.rbi.informatik.uni-frankfurt.de/~markus/antiword/00README. ВЫИГРАТЬ). – Matthias

ответ

1

Я тоже на этом сейчас, и, как я понял, у python нет прямого API для этого. Но вы всегда можете использовать это из командной строки.

antiword -f file.doc > file.txt 
antiword -p letter file.doc > file.pdf 

И запустите эту команду из python.

os.system('antiword foo.doc > foo.txt') 

 Смежные вопросы

  • Нет связанных вопросов^_^