如何从python中的字节对象中删除一系列字节?

我对
python很新,有时看起来非常简单的东西比预期的要复杂得多

我目前正在使用字节缓冲区从套接字读取:

data = self.socket.recv(size)

然后处理该缓冲区的一部分,需要将其删除

问题是我一直在寻找一种方法,并且在整个晚上都找不到线索,我很确定我没有得到任何公平的结果,因为所涉及的话,或者可能不可能

我试过“del”,但得到一个错误,说它不受支持

我这样做是错误的吗?也许有人能以正确的方式引导我? 🙂

最佳答案 bytes不支持项删除,因为它是不可变的.要“修改”字符串和类似字符串的对象,您需要复制一份,所以要删除olddata [start:end] do:

newdata = olddata[:start] + olddata[end:]

当然,这是相当多的复制,并非所有这些都是必要的,因此您可能更愿意为了性能而重新编写代码.你可以使用bytearray(这是可变的).或者您可能找到一种方法来处理缓冲区(使用索引或迭代其元素),而不是在每个步骤后缩短它.

点赞