Python 从二进制文件读取可变长度字符串
我有一个二进制文件,它首先包含一个列有冒号类型的头文件,然后是数据。一个典型的例子如下所示:Python 从二进制文件读取可变长度字符串,python,binaryfiles,Python,Binaryfiles,我有一个二进制文件,它首先包含一个列有冒号类型的头文件,然后是数据。一个典型的例子如下所示: 8Byte表示双精度,8Byte表示双精度,4Byte表示int32 该序列重复几次(在10k和20M之间)。 这可以通过以下方式轻松阅读: numpy.fromfile(文件id,dtype=(('A':')查看: 我想我对这个问题的措辞有点混乱。很抱歉。我遇到的问题是,对于每个实例,每个条目的字符长度都不同。读取字符串时,字符串的形式是str=('bla','blabla','bl',…) # ex
8Byte表示双精度
,8Byte表示双精度
,4Byte表示int32
该序列重复几次(在10k和20M之间)。
这可以通过以下方式轻松阅读:
numpy.fromfile(文件id,dtype=(('A':')查看:
我想我对这个问题的措辞有点混乱。很抱歉。我遇到的问题是,对于每个实例,每个条目的字符长度都不同。读取字符串时,字符串的形式是str=('bla','blabla','bl',…)
# example taken from [illuminate][2]
from bitstring import BitString
bs = BitString(bytes=open(bitstring_or_filename, 'rb').read())
recordlen = bs.read('uintle:8') # length of each record
# 206 * 8 = 1648 record length in bits
for i in range(0,((bs.len) / (recordlen * 8))):
# ....