python 读取word文档报错:There is no item named ‘word/NULL‘ in the archive的处理办法

方法一:python-docx模块

使用python-docx模块,通过其中的Document函数可以读取word文档,然后可以借助document对象的相关属性、方法来获取文档中想要的信息或者编辑文档。

‘add_heading’,
‘add_page_break’,
‘add_paragraph’,
‘add_picture’,
‘add_section’,
‘add_table’,
‘core_properties’,
‘element’,
‘inline_shapes’,
‘paragraphs’,
‘part’,
‘save’,
‘sections’,
‘settings’,
‘styles’,
‘tables’

简单示例

from docx import Document
 input_document = Document(filename)  #读取word文件
 tables = input_document.tables # 获取文件中的所有表格

读取文件时可能存在的错误

错误信息

KeyError: “There is no item named ‘word/NULL’ in the archive”

在这里插入图片描述
对于上述错误信息,今天又查找了下错误原因和解决方式,突然发现网上几乎没有人搜索这个报错信息,今天看到一条信息是关于word文档的简述:

大约在2008年以前,Office产品中Word用.doc文件格式,这种二进制格式很难与其他软件兼容。
为了跟上时代,微软采用类XML格式标准定义其新版Word文件.docx。
.docx实际上是一个zip的压缩文件

方法二:解压-解析的方式

根据对上述word的简述, 根据word(.docx)文件的格式,因此我们可以通过遵循如下步骤进行正文信息的提取:

  1. 解压.docx文件
  2. 用BeautifulSoup解析word/document.xml提取正文信息

代码示例如下:

from zipfile import ZipFile
from bs4 import BeautifulSoup

document=ZipFile(r'test.docx')
xml=document.read("word/document.xml")
wordObj=BeautifulSoup(xml.decode("utf-8"))
texts=wordObj.findAll("w:t")
for text in texts:
    print(text.text)

后记
还有什么新的方法,评论区欢迎探讨互动学习。

  • 8
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

积跬步,慕至千里

你的鼓励将是我创作的最大动力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值