首页 > 解决方案 > 如何在 Python 中解压缩复合文件

问题描述

我尝试解压缩文件类型 *.pcbdoc,它是 Altium 的文件格式。我可以使用 7zip 中的“打开存档”查看和提取文件结构,但是我似乎无法在 Python 中打开它。我尝试过 zipfile、py7zr、pyunpack 等,但都没有成功。

我知道我们不确定 *.pcbdoc 是哪种 zip 格式,但是 7zip 如何打开存档?我可以在 python 中做同样的事情吗?有人可以给我一些帮助吗?非常感谢。

我试过的:

  1. 导入压缩文件

zipfile.ZipFile(source_path).extractall(output_path)

收到错误:zipfile.BadZipFile:文件不是 zip 文件

  1. 导入 py7zr

py7zr.SevenZipFile(source_path, mode='r').extractall(output_path)

出现错误:py7zr.exceptions.Bad7zFile:不是 7z 文件

  1. 从 pyunpack 导入存档

存档(source_path).extractall(output_path)

出现错误:pyunpack.PatoolError: patool 无法解压,文件的未知存档格式

标签: pythonunzip

解决方案


谢谢您的帮助。从评论中的链接学习:链接,我将 .pcbdoc 处理为 olefile 并且非常成功。这是我所做的:

import olefile    
f=olefile.OleFileIO(source_path).openstream(subfolder_path)    
print(f.read().decode(errors="ignore"))

推荐阅读