尝试使用python从word中提取文本时出错?

问题描述 投票:0回答:1

我目前正在尝试用 Python 编写一个函数,该函数允许我从 .docx 文件中提取文本。为此,我使用 python-docx 库。我的程序也做了它应该做的事情,至少当我在 Python 中创建一个 docx 文件,然后在这个文件上使用我的函数时,它会将文本返回给我。

但是,对于我修改或创建的.docx文件(word文档),它找不到路径并返回PackageNotFoundError。我上网检查我的文件是否是 zip 文件。我用 zipfile 做到了这一点,事实上我保存的 word 文档不是 zipfiles。这是怎么回事?再次验证一下我的python代码:

从 zipfile 导入 is_zipfile 导入docx

doc = docx.Document()

doc.add_paragraph(“你好”)

doc.save(test_path)

打印(is_zipfile(test_path))

//输出=真

如果我进入此 test_path,输入一个数字并保存 ->

打印(is_zipfile(测试路径)) //输出=假

现代 .docx 文档不再是 zip 文件吗?或者这里出了什么问题?

当谷歌搜索到处都写到word文档/.docx文件是zip文件。我认为这就是为什么库给我错误代码并且无法打开文件的问题。 我感谢每个试图提供帮助的人。谢谢

python python-3.x zip python-docx text-extraction
1个回答
0
投票

如果您想要对最终文档进行更多控制,或者想要更改现有文档,则需要使用文件名打开一个文档:

document = Document('existing-document-file.docx')
document.save('new-file-name.docx')
  • 您可以通过这种方式打开任何 Word 2007 或更高版本的文件(Word 2003 及更早版本中的 .doc 文件不起作用)。虽然您可能还无法操作所有内容,但其中已有的内容都可以正常加载和保存。该功能集仍在构建中,因此您还无法添加或更改诸如标题或脚注之类的内容,但如果文档有它们,python-docx 足够有礼貌地保留它们,并且足够聪明,可以在不真正了解它们的情况下保存它们他们是。
  • 如果使用相同的文件名打开和保存文件,python-docx 会乖乖地覆盖原文件,不偷看。您需要确保这就是您的意图。
© www.soinside.com 2019 - 2024. All rights reserved.