我有一个单元输入流,我想过滤出字节'\ 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'
我们非常感谢您的帮助。
答案 0 :(得分:2)
您可以按以下方式尝试使用gsaTs.X_GSA_ARRIVE_ONSITE <> to_date('1753/01/01', 'YYYY/MM/DD')
:
replace()
这将显示:
print(example.replace(b'\0', b''))
文本可能为b'\n[7045194906842] - DSI - Response'
格式,因此以下代码会将其转换为字符串:
utf-16
答案 1 :(得分:1)
您可以将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
)