如何从文本文档中去除\ x00字节

时间:2018-09-26 08:57:25

标签: python filter byte strip

我有一个单元输入流,我想过滤出字节'\ 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'

我们非常感谢您的帮助。

2 个答案:

答案 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)

您可以将filterNone过滤器一起使用(删除虚假元素)并强制重建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