我有一个包含数据数组的 bz2 压缩二进制(大端)文件。使用外部工具解压缩,然后将文件读入 Numpy 可以:
import numpy as np
dim = 3
rows = 1000
cols = 2000
mydata = np.fromfile('myfile.bin').reshape(dim,rows,cols)
但是,由于有很多其他类似的文件,我无法事先单独提取每个文件。因此,我在 Python 中找到了 bz2 模块,它可能可以直接在 Python 中解压它。但是我收到一条错误消息:
dfile = bz2.BZ2File('myfile.bz2').read()
mydata = np.fromfile(dfile).reshape(dim,rows,cols)
>>IOError: first argument must be an open file
显然,BZ2File 函数不返回文件对象。你知道读取压缩文件的正确方法是什么吗?