bytesarray で find()/index() (それらの間に違いがあるかどうかはわかりません) を使用すると、この奇妙な問題が発生します。
私はバイナリファイルで作業しています.bytesarrayとしてロードしました.メッセージの始まりとメッセージの終わりを示すトークンを見つける必要があります. メッセージの先頭 (0x03 0x02) を見つけることですべてが正常に機能しますが、末尾 (0x00) を検索すると、検索を開始した位置と同じ位置を取得し続けます。
msg_start_token = bytearray((int(0x03), int(0x02)))
msg_end_token = bytes(int(0x00))
def get_message(file,start_pos):
msg_start = file.find(msg_start_token,start_pos) + 2
print(hex(msg_start))
msg_end = file.find(msg_end_token,msg_start)
print(hex(msg_end))
msg = file[msg_start:msg_end]
print(msg)
return (msg, msg_end)
私は以前にバイナリファイルを実際に扱ったことがないので、実際には本当に単純なものが欠けているかもしれません。