美文网首页
python文档处理问题解决:docx.opc.exceptio

python文档处理问题解决:docx.opc.exceptio

作者: 前端组件分享 | 来源:发表于2024-01-04 17:16 被阅读0次

    原文链接:https://blog.csdn.net/nings666/article/details/134820079

    解决: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 的匹配发行版

    1

    2

    3

    4

    5

    6

    报错位置代码

    ...

    import docx

          file=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)

    ...

    1

    2

    3

    4

    5

    6

    7

    8

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

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

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

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

    正确的代码如下:

    # encoding=utf-8

    from win32com import client as wc

    w = 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

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

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

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

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

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

    参考内容

    100%解决docx.opc.exceptions.PackageNotFoundError: Package not found at

    Python 将doc转化为docx

    ————————————————

    版权声明:本文为CSDN博主「ninghes」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。

    原文链接:https://blog.csdn.net/nings666/article/details/134820079

    https://blog.csdn.net/nings666/article/details/134820079?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-134820079-blog-133884201.235%5Ev40%5Epc_relevant_anti_t3&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EYuanLiJiHua%7EPosition-3-134820079-blog-133884201.235%5Ev40%5Epc_relevant_anti_t3&utm_relevant_index=6

    相关文章

      网友评论

          本文标题:python文档处理问题解决:docx.opc.exceptio

          本文链接:https://www.haomeiwen.com/subject/pvdbndtx.html