python关于docx模块处理doc文件报错docx.opc.exceptions.PackageNotFoundError: Package not found...的问题解决方案

上周在处理word文档时,遇到了报错:"docx.opc.exceptions.PackageNotFoundError: Package not found.....",通过观察文档发现是因为docx模块只能处理docx文件,而无法处理doc文件。以下是我的处理办法。

1、通过修改文件扩展名将后缀改为docx,无法解决问题

2、使用word或者wps打开文档,选择另存为,将文档另存为docx格式,能够解决

进一步处理(大批量):

因为我需要处理大批次的文档,所以我无法一个一个利用方法2去手动转换。因此我想到了wps的批量格式转换

结果:批量转换的文档依然无法使用,依旧会报错,所以我将手动创建的docx文档与批量转换的文档的详细属性进行一一对比发现问题。

wps批量转换时会自动插入自定义属性,位置在右键点击文件——>属性——>自定义属性。通过手动删除自定义属性后发现文档可以使用。

但上述方法并不具有可操作性,因为过了一段时间后,通过这种方法处理文件,依旧会报错,并且我们无法手动大批量的一一进行属性删除工作。

最终解决(大批量处理问题):

使用word的vba进行解决:

步骤1:打开word,按alt + f11进入vba页面

步骤2:点击插入标签下的模块选项

步骤3:在弹出的窗口输入以下代码

Sub doc2docx()    'doc文件转docx文件
Dim myDialog   As FileDialog, oFile   As Variant
Set myDialog = Application.FileDialog(msoFileDialogFilePicker)
With myDialog
        .Filters.Clear     '清除所有文件筛选器中的项目
        .Filters.Add "所有 WORD97-2003 文件", "*.doc", 1           '增加筛选器的项目为所有WORD97-2003文件
        .AllowMultiSelect = True       '允许多项选择
         If .Show = -1 Then          '确定
             For Each oFile In .SelectedItems          '在所有选取项目中循环
                 With Documents.Open(oFile)
                .SaveAs FileName:=Replace(oFile, "doc", "docx"), FileFormat:=12
                .Close
                 End With
             Next
         End If
End With
End Sub

步骤4:点击运行菜单下的,运行子过程

步骤5:选取文件,可以一次大批量选择文件,点击确定就可以执行了。

 问题最终得到解决!!!

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值