0
我有一个原始的二进制文件是几个演出,我试图以块处理它。在开始处理数据之前,我必须删除它的标题。由于原始的二进制文件格式,没有任何字符串方法如.find或数据块中的字符串检查工作。我想自动剥离标题,但是它的长度可能会有所不同,而我目前寻找最后一行新字符的方法不起作用,因为原始二进制数据在数据中具有匹配的位。从二进制文件条形标题
Data format:
BEGIN_HEADER\r\n
header of various line count\r\n
HEADER_END\r\n raw data starts here
如何我读文件
filename="binary_filename"
chunksize=1024
with open(filename, "rb") as f:
chunk = f.read(chunksize)
for index, byte in enumerate(chunk):
if byte == ord('\n'):
print("found one " + str(index))
有没有一种简单的方法来提取HEADER_END \ r \ n个线而无需通过文件滑动的字节数组吗? 现行办法:
chunk = f.read(chunksize)
index=0
not_found=True
while not_found:
if chunk[index:index+12] == b'HEADER_END\r\n':
print("found")
not_found=False
index+=1
没有用于没有新线的标签大二进制文件的其余部分。它会尝试将文件的其余部分作为单行读取吗? – kaminsknator
我没有得到原始数据部分可能有新行,我更新了答案。 – Trugis
如果数据中没有新行,将原始数据读入为一个大块?在这种情况下,该块将是几个演出。 – kaminsknator