【问题标题】:How to unzip a compound file in Python如何在 Python 中解压缩复合文件
【发布时间】:2021-10-27 15:46:15
【问题描述】:

我尝试解压缩文件类型 *.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 无法解压,文件的存档格式未知

【问题讨论】:

  • 试试gz?也许......你需要知道它是如何压缩的或不断尝试不同的版本......前几个字节中可能有一个幻数,告诉你它也是什么类型的文件
  • 我不熟悉这种格式,但也许this库有用
  • 非常感谢您的提示。我能够将内容转储为 olefile。

标签: python unzip


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 2011-03-27
    • 2018-01-28
    • 2011-10-30
    • 1970-01-01
    • 1970-01-01
    • 2011-09-01
    • 1970-01-01
    相关资源
    最近更新 更多