我正在多次发送带有前置/后置码的消息。我希望能够在两个有效的前置/后置码之间提取消息。我当前的代码是
print(msgfile[msgfile.find(preamble) + len(preamble):msgfile.find(postamble, msgfile.find(preamble))])
问题是如果后同步码损坏,它将打印第一个有效前同步码和下一个有效后同步码之间的所有数据。接收到的文本文件示例为:
garbagePREAMBLEmessagePOSTcMBLEgarbage
garbagePRdAMBLEmessagePOSTAMBLEgarbage
garbagePREAMBLEmessagePOSTAMBLEgarbage
它会打印
messagePOSTcMBLEgarbage
garbagePRdEAMBLEmessage
但我真正希望它打印的是来自第三行的消息,因为它具有有效的前置/后置码。所以我想我想要的是能够从子字符串的下一个实例中查找和索引。是否有捷径可寻?
编辑:我不希望我的数据是很好的离散行。我只是这样格式化它,这样更容易看到