python - 导入错误: cannot import name opendocx

标签 python docx

我正在尝试使用以下代码从 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 '\n\n'.join(newparatextlist)
    elif filename[-4:] == ".odt":
        ...
    elif filename[-4:] == ".pdf":
        ...

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

但是,我只看到:ImportError:无法导入名称 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

关于python - 导入错误: cannot import name opendocx,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26214712/

相关文章:

python - 按两列分组并求和?

python - Python如何迭代一个for循环?

Python:将一个大文本文件分割为多个标题

Python - 属性错误 : 'NoneType' object has no attribute 'findAll'

java - 使用 Javascript 将 doc/docx 批量转换为 pdf

python - 使用 docx.Document() 时的回溯(最近一次调用最后一次)

python - 无法访问主目录中的文件(Jupyter Notebook)

php - PHP finfo_file 中的 DOCX 文件类型是 application/zip

javascript - 使用 Officegen 和 html 创建 Docx 文件

php - 如何使用 opentbs 在 docx 中插入条件空格(仅当某些字段不为空时)