我有一个单元输入流,我想过滤出字节“ \ x00”。这些空字节仅出现在打印变量时。例如,我要从以下变量中滤除\ x00。
example = b'\n\x00[\x007\x000\x004\x005\x001\x009\x004\x009\x000\x006\x008\x004\x002\x00]\x00 \x00-\x00 \x00D\x00S\x00I\x00 \x00-\x00 \x00R\x00e\x00s\x00p\x00o\x00n\x00s\x00e\x00'
任何帮助都非常感谢。
最佳答案
您可以将filter
与None
过滤器一起使用(删除伪造的元素)并强制重建bytes
对象:
example = b'\n\x00[\x007\x000\x004\x005\x001\x009\x004\x009\x000\x006\x008\x004\x002\x00]\x00 \x00-\x00 \x00D\x00S\x00I\x00 \x00-\x00 \x00R\x00e\x00s\x00p\x00o\x00n\x00s\x00e\x00'
result = bytes(filter(None,example))
结果
b'\n[7045194906842] - DSI - Response'
(通用答案是
result = bytes(x for x in example if x != character_code)
,在这种情况下,我们通常不使用filter
,因为它需要一个lambda
)