尝试使用Python从Word中提取文本时出错?

i7uq4tfw  于 4个月前  发布在  Python
关注(0)|答案(1)|浏览(77)

我目前正在尝试用Python写一个函数,它允许我从.docx文件中提取文本。为此,我使用python-docx库。我的程序也做了它应该做的事情,至少当我在Python中创建一个docx文件,然后在这个文件上使用我的函数时,它会返回文本给我。
然而,对于我修改或创建的.docx文件(Word文档),它找不到路径并返回PackageNotFoundError。我在互联网上检查我的文件是否是zip文件。我用zipfile做了这件事,事实上我保存的Word文档不是zipfile。这是怎么回事?我再次验证的python代码:

from zipfile import is_zipfile
import docx

doc = docx.Document()

doc.add_paragraph("Hello")

doc.save(test_path)

print(is_zipfile(test_path))


//output = true

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

print(is_zipfile(test_path))
//output = false


现代的.docx文档不再是zip文件了吗?或者这里有什么问题?
当谷歌无处不在写的Word文档/.docx文件是zip文件。我认为这就是为什么图书馆给我的错误代码,无法打开文件的问题。我很感激大家试图帮助。谢谢

zsohkypk

zsohkypk1#

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

document = Document('existing-document-file.docx')
document.save('new-file-name.docx')

字符串

  • 您可以通过这种方式打开任何Word 2007或更高版本的文件(Word 2003及更早版本的.doc文件不起作用)。虽然您可能还无法操作所有内容,但已经存在的内容都将加载并保存。功能集仍在构建中,因此您还不能添加或更改标题或脚注等内容,但是如果文档中有它们,python-docx会礼貌地不去管它们,并且足够聪明地保存它们,而不需要真正理解它们是什么。
  • 如果你使用相同的文件名来打开和保存文件,python-docx会顺从地覆盖原始文件而不会偷看。

相关问题