2014-10-06 7 views
1

Я пытаюсь сделать текстовый файл из DOCX, используя этот код:ImportError: не может импортировать имя opendocx

from subprocess import Popen, PIPE 
from docx import opendocx, getdocumenttext 
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 

def convert_pdf_to_txt(path): 
    ... 

def document_to_text(filename, file_path): 
    ... 
    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) 
    elif filename[-4:] == ".odt": 
     ... 
    elif filename[-4:] == ".pdf": 
     ... 

document_to_text('1.docx','D:\Nucho\Python\AntiPlagiat\1.docx') 

Однако, я вижу только: ImportError: cannot import name opendocx

Некоторых текстов»..... .. ', чтобы задать вопрос.

+0

Hi! Вы когда-нибудь решали эту проблему? Я страдаю из-за этого прямо сейчас. Благодаря! – rodrigocf

ответ

1

прочитанное PLS, Функция «opendocx()» больше не является частью последней версии python-docx. Начиная с v0.3.0, python-docx был полностью переписан и API не имеет обратной совместимости. Новый вызов будет что-то вроде:

document = Document(docx_file_path) 

документации по новой версии доступна здесь: http://python-docx.readthedocs.org/

Если вы хотите предварительное API, вы должны установить docx, а не python-docx, например:

pip install docx 

Название пакета изменилось между двумя версиями, поэтому люди могут получить доступ к устаревшей версии, если это то, что они хотят. Перед установкой docx необходимо удалить python-docx и наоборот, чтобы избежать путаницы в отношении того, что импортируется.

Сообщите мне, если вам нужно больше.

ref: https://groups.google.com/forum/#!msg/python-docx/otp6hq4kJ5c/tfQB88Mfx2gJ