【发布时间】:2019-08-28 09:39:24
【问题描述】:
我有一个二进制文件,没有扩展名(只是文件名)。它包含几个图像。 xml 标头包含有关每个图像或图像堆栈的若干信息。
例如,第一组图像具有totalBytes=7029545 和compress=Deflated 等信息。但是,其他堆栈包含compress=None,我设法毫无问题地阅读它们。
但首先,据我了解,除非我解压缩“数据”,否则我无法阅读它们。来自第一个堆栈的数据存储在“字符串”中,该字符串属于“bytes”类(来自type( my_first_stack_data ))。
我尝试了几种方法来解压缩数据,包括 zlib、gzip、lzma。但没有一个有效。我什至尝试使用 zlib 获取所有可能的 wbits 值(从 -15 到 48)...
数据的开头是这样的(from my_first_stack_data[:100]):
b'\x00x\x9c\xec\xbdu\xdcW\xc5\x13?:3\x1b\xe7\xd3\xf1t\xc2CwwwHKJIwHw#JK\x87\x94\x88t\xa3\xa4 \x88 \x88 \x824JI\xa7\x02\xa2\xe2\xdd=\x9f\xcf\x13\xa2\xde\xfb\xba\x7f\xfc|\xbe\x97s\xc7\xd7sj\xf7\x1c?\xfbffgvvv\x16\xe0\x7f\x93H\xfdE\xc1ZxS\x9d+@w\xf3\x19\x9a'
例如,gzip.decompress 方法给了我一个例外:OSError: Not a gzipped file (b'\x00x')
如何读取/解压缩该“字节”字符串(而不是成功读取还包含未压缩数据的整个文件)?非常感谢。
【问题讨论】:
标签: python-3.x string byte gzip deflate