我需要解压缩一个.bin文件。用于使文件打包数据的代码如下:
x = ''
x = x + struct.pack('q', random.randint(0, MAX_NUM))
x = x + struct.pack('q', random.randint(0, MAX_NUM))
当我执行f.read(16)时,其中16是我想一次读取的数据大小,并打印出来,我得到:
我知道'q'表示数据要打包很长一段时间,并且我尝试使用
struct.unpack()
尝试解压缩数据,但是我似乎无法获得有关如何解压缩的正确语法它。那么我将如何解压缩这些信息?
最佳答案
要将两个随机数打包到字符串x
中:
In [6]: x = struct.pack('2q', random.randint(0, MAX_NUM), random.randint(0, MAX_NUM))
要从字符串中解开这些数字,请执行以下操作:
In [7]: struct.unpack('2q', x)
Out[7]: (806, 736)
保存和读取文件
即使我们将
x
保存在文件中,然后稍后再读回,拆包过程也是相同的:In [8]: open('tmpfile', 'w').write(x)
In [9]: y = open('tmpfile', 'r').read()
In [10]: struct.unpack('2q', y)
Out[10]: (806, 736)
关于python - 如何在Python中解压缩结构?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29884377/