我正在尝试使用以下代码从docx制作一个txt文件:
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 'nn'.join(newparatextlist)
elif filename[-4:] == ".odt":
...
elif filename[-4:] == ".pdf":
...
document_to_text('1.docx','D:NuchoPythonAntiPlagiat1.docx')
然而,我只看到:ImportError: cannot import name opendocx
一些文本"……"发布问题。
请阅读,"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,反之亦然,以避免对导入的内容产生混淆。
如果你需要更多,请告诉我。
参考:https://groups.google.com/forum/#!msg/python docx/otp6hq4kJ5c/tfQB88Mfx2gJ