解决:docx.opc.exceptions.PackageNotFoundError: Package not found at ‘xxx’

解决:docx.opc.exceptions.PackageNotFoundError: Package not found at ‘xxx’



文章目录

  • 解决:docx.opc.exceptions.PackageNotFoundError: Package not found at ‘xxx’
    • 背景
    • 报错问题
    • 报错翻译
    • 报错位置代码
    • 报错原因
    • 解决方法
    • 参考内容
      • 今天的分享就到此结束了



背景

在使用之前的代码时,报错:
Traceback (most recent call last):
File , line 1, in
file=docx.Document(“C:/Users/Administrator/Desktop/选择/add.doc”)
docx.opc.exceptions.PackageNotFoundError: Package not found at ‘xxx’



报错问题

Traceback (most recent call last): File , line 1, in  file=docx.Document("C:/Users/Administrator/Desktop/选择/add.doc") docx.opc.exceptions.PackageNotFoundError: Package not found at ‘xxx’


报错翻译

主要报错信息内容翻译如下所示:

Traceback (most recent call last): File , line 1, in  file=docx.Document("C:/Users/Administrator/Desktop/选择/add.doc") docx.opc.exceptions.PackageNotFoundError: Package not found at ‘xxx’

翻译:

回溯(最近一次调用最后一次): file=docx.Document("C:/Users/Administrator/Desktop/选择/add.doc")中的文件 “”,第 1 行 错误:未找到 rarfile 的匹配发行版


报错位置代码


...
import docxfile=docx.Document("C:/Users/Administrator/Desktop/选择/add.doc") print(js)
...


报错原因

经过查阅资料,发现是使用docx.Document()读取文件的时候,支持读取 .docx 文件,不支持读取 .doc 文件,不是 .docx 需要转换成 .docx。

小伙伴们按下面的解决方法即可解决!!!



解决方法

要解决这个错误,需要使用wps打开文件另存为docx,才可以解决此问题。

正确的代码是:


...
import docx 
file=docx.Document("C:/Users/Administrator/Desktop/选择/add.doc") 
for para in doc.paragraphs:print(para.text)
...

网上也找了很多其他答案,能够解决问题的还有以下几种:

  • 因为word文件是空的,在文件里加一些内容就可以

  • 在文件里加几个空格就可以解决

  • 在使用SaveAs2()函数时,第二个参数代表存储格式,16代表的存储格式为doc,12代表的存储格式为docx。存储格式设置成12后,python-docx就能读取文件了,代码示例如下。

正确的代码如下:

# encoding=utf-8from win32com import client as wcw = wc.gencache.EnsureDispatch('kwps.application')
doc = w.Documents.Open(r"C:/Users/Administrator/Desktop/选择/add.doc")
doc.SaveAs2(r"C:/Users/Administrator/Desktop/选择/add.docx", 12) # 问题出在这,必须为12

使用上述例子时,还需要注意:

  1. 需要用到win32com这个包,不是Python内建的,需要通过python -m pip install pypiwin32安装。

  2. 要用gencache.EnsureDispatch这个函数才行,网上其他大神用的方法不行。另外,如果你的电脑只安装了WPS,函数参数就得是“kwps.application”,如果有Office,参数就不是这个了。

  3. Open方法内的文件路径得用绝对路径,用相对路径的话我反正报错。

  4. 另存为不用SaveAs,要用SaveAs2,参数是绝对路径。

参考内容

100%解决docx.opc.exceptions.PackageNotFoundError: Package not found at
Python 将doc转化为docx



今天的分享就到此结束了

欢迎点赞评论关注三连

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/200856.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础课17——任务问答引擎

任务问答引擎在智能客服系统中负责多轮对话的对话流设计、意图的管理、任务流的执行等功能。能够高效地进行意图识别与任务解析,实现多轮对话的流程设计,并驱动多轮会话任务的高效完成。 1.定义 任务问答引擎负责多轮对话的对话流设计、意图的管理、任…

如何选呼叫中心的语音通道?

如何选呼叫中心的语音通道? 在公网语音线路和专线语音线路中,选择合适的语音通道类型需要根据呼叫中心的实际需求进行综合考虑。 如果呼叫中心的预算有限,或者对语音质量和稳定性的要求不高,可以选择公网语音线路。如果需要更高…

dante(centos)安装

下载安装包 https://www.inet.no/dante/doc/latest/config/index.html 下载软件 解压 tar -zxvf dante-1.4.3.tar.gz 或者 wget http://www.inet.no/dante/files/dante-1.4.3.tar.gz tar -xvzf dante-1.4.3.tar.gz 编译 cd dante-1.4.3 yum install gcc make -y ##编译必备 …

OpenCV-Python:计算机视觉框架

目录 1.背景 2.早期计算机视觉框架 3.当前主流框架 4.计算机视觉框架的未来趋势 5.知识笔记 1.背景 俗话说“工欲善其事必先利其器”,想要学好计算机视觉,需要借助于相关的计算机视觉库,这样在进行学习的时候可以达到事半功倍的效果。 …

使用python的opencv实现人脸识别

简介:本项目主要使用python语言,主要的模块库有os,opencv-python,opencv-contrib-python。项目主要分为三个部分,人脸录入,训练数据,实现人脸的识别。本博客包含源代码,以及各个功能…

MVC、MVP、MVVM模式的区别

前言:这三个表现层框架设计模式是依次进化而形成MVC—>MVP—>MVVM。在以前传统的开发模式当中即MVC模式,前端人员只负责Model(数据库)、 View(视图)和 Controller /Presenter/ViewModel(控…

android开发市场被抢占,鸿蒙能入行吗?

根据最新的数据,华为Mate60系列在上市第二周就成功占据了国内手机市场的17%份额,排名第二。而机构预测,华为手机在第37周有望超过20%的市场份额,成为国内手机市场的冠军。 一开始,人们对HarmonyOSNEXT持保留态度&…

vite初识

Vite是伴随着Vue3正式版一起发布的,最开始Vite 1.0的版本是为Vue3服务的,并不是跨框架的。之后半年时间左右,出现了Vite 2.0版本,Vite 2.0真正脱离了和Vue3的强关联,以插件的方式,可以集成到目前流行的主流…

Apache Doris 在某工商信息商业查询平台的湖仓一体建设实践

本文导读: 信息服务行业可以提供多样化、便捷、高效、安全的信息化服务,为个人及商业决策提供了重要支撑与参考。本文以某工商信息商业查询平台为例,介绍其从传统 Lambda 架构到基于 Doris Multi-Catalog 的湖仓一体架构演进历程。同时通过一…

【头歌系统数据库实验】实验2 MySQL软件操作及建库建表建数据

目录 第1关:创建数据库 第2关:创建供应商表S,并插入数据 第3关:创建零件表P,并插入数据 第4关:创建工程项目表J,并插入数据 第5关:创建供应情况表SPJ,并插入数据 …

第一百九十回 自定义一个可选择的星期组件

文章目录 1. 概念介绍2. 实现方法2.1 实现思路2.2 实现方法3. 示例代码4. 内容总结我们在上一章回中介绍了"如何让Text组件中的文字自动换行"相关的内容,本章回中将介绍 如何自定义一个可选择的星期组件.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在…

智能优化算法应用:基于类电磁机制算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于类电磁机制算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于类电磁机制算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.类电磁机制算法4.实验参数设定5.算法结果…

EasyRecovery14破解版 v14.0.0.4 官方免费版(含激活码)

软件介绍 EasyRecovery14高级版是一款功能强大的数据恢复软件,软件对比家庭版本它的使用更加广泛,在恢复数据方面软件可以做到最完整的损失恢复,无论是文档、音乐、软件都可以一键恢复,同时软件还可以对文件的名字、后缀进行修改…

ES6之Symbol

ES6中为我们新增了一个原始数据类型Symbol,让我为大家介绍一下吧! Symbol它表示是独一无二的值 Symbol要如何创建 第一种创建方式: let sy Symbol()第二种创建方式: let sy Symbol.for()具体独一无二在哪呢?它们的地…

nodejs+vue+微信小程序+python+PHP天天网站书城管理系统的设计与实现-计算机毕业设计推荐

本项目主要分为前台模块与后台模块2个部分,详细描述如下:   (1)前台模块 首页: 首页可以起到导航的作用,用户想要了解网站 ,网站首页为用户可以深入了解网站提供了一个平台,它就向一个“导游”…

react-router v6实现动态的title(react-router-dom v6)

前言 react-router-dom v6 默认不支持 title设置了,所以需要自己实现一下。 属性描述path指定路由的路径,可以是字符串或字符串数组。当应用的URL与指定的路径匹配时,该路由将会被渲染。element指定要渲染的React组件或元素。children代表…

Flutter桌面应用程序定义系统托盘Tray

文章目录 概念实现方案1. tray_manager依赖库支持平台实现步骤 2. system_tray依赖库支持平台实现步骤 3. 两种方案对比4. 注意事项5. 话题拓展 概念 系统托盘:系统托盘是一种用户界面元素,通常出现在操作系统的任务栏或桌面顶部。它是一个水平的狭长区…

深度学习在单线性回归方程中的应用--TensorFlow实战详解

深度学习在单线性回归方程中的应用–TensorFlow实战详解 文章目录 深度学习在单线性回归方程中的应用--TensorFlow实战详解1、人工智能<-->机器学习<-->深度学习2、线性回归方程3、TensorFlow实战解决单线性回归问题人工数据集生成构建模型训练模型定义损失函数定义…

Leetcode1423. 可获得的最大点数

Every day a Leetcode 题目来源&#xff1a;1423. 可获得的最大点数 解法1&#xff1a;前缀和 后缀和 基于贪心的思想&#xff0c;要使得获得的点数最大&#xff0c;每次拿卡牌都应该选点数尽量高的卡牌。 但是拿卡牌有限制&#xff0c;每次行动&#xff0c;只可以从行的…

Android Chips(标签)

目录 一、流式布局标签发展历程 二、类型及使用 2.1 Chip.Action(默认值) 2.2 Chip.Entry 2.3 Chip.Filter 2.4 Chip.Choice 三、常用事件 3.1 OnClickListener 3.2 OnCheckedChangeListener 3.3 OnCloseIconClickListener 四、ChipGroup 4.1 ChipGroup Chip.Choi…