Python 转换包含随机字符的dpkt字节字符串
我正在使用dpkt python模块解析pcap文件。我对数据包进行了足够深入的研究,其中一些数据被表示为字节流。我可以很容易地从常规字节字符串转换,但是有些字节字符串显示为: \t\x01\x1c\x88 第一个值应该是09,但是由于某种原因,它使用了转义制表符。(制表符的十六进制代码为09) 它也为其他流中的其他角色执行此操作 更多示例输出: \x10\x00@\x00\ \x05q\x00\x00\ \x069\x9c\n\x00 所以我的问题是:我能把这个字节流转换成没有这些额外字符的字节流吗 或者,我如何将类似“\t”的内容转换为十六进制,以便它返回“09” 更新: 事实证明,我是在使用一个返回的函数创建要转换的字符串 \t011c88代替第一个流Python 转换包含随机字符的dpkt字节字符串,python,byte,dpkt,Python,Byte,Dpkt,我正在使用dpkt python模块解析pcap文件。我对数据包进行了足够深入的研究,其中一些数据被表示为字节流。我可以很容易地从常规字节字符串转换,但是有些字节字符串显示为: \t\x01\x1c\x88 第一个值应该是09,但是由于某种原因,它使用了转义制表符。(制表符的十六进制代码为09) 它也为其他流中的其他角色执行此操作 更多示例输出: \x10\x00@\x00\ \x05q\x00\x00\ \x069\x9c\n\x00 所以我的问题是:我能把这个字节流转换成没有这些额外字符的字
不使用它,使用stream.encode(“hex”)工作默认情况下,
repr
函数会像您看到的那样转义所有不可打印的字符
要获得仅十六进制表示,请使用
string.encode("hex")
注意:原始ByTestStream是正确的,您应该仅将其转换为十六进制以供查看,而不是用于完整性目的。它只是以一种奇怪的方式显示数据。Ah,刚刚意识到我是以一种奇怪的方式创建十六进制字符串的(我将编辑问题来说明这一点)。当我停止执行此操作时,string.encode工作正常。标记作为答案。