Python 转换包含随机字符的dpkt字节字符串

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 所以我的问题是:我能把这个字节流转换成没有这些额外字符的字

我正在使用dpkt python模块解析pcap文件。我对数据包进行了足够深入的研究,其中一些数据被表示为字节流。我可以很容易地从常规字节字符串转换,但是有些字节字符串显示为:

\t\x01\x1c\x88

第一个值应该是09,但是由于某种原因,它使用了转义制表符。(制表符的十六进制代码为09)

它也为其他流中的其他角色执行此操作

更多示例输出:

\x10\x00@\x00\

\x05q\x00\x00\

\x069\x9c\n\x00

所以我的问题是:我能把这个字节流转换成没有这些额外字符的字节流吗

或者,我如何将类似“\t”的内容转换为十六进制,以便它返回“09”

更新:

事实证明,我是在使用一个返回的函数创建要转换的字符串 \t011c88代替第一个流


不使用它,使用stream.encode(“hex”)工作

默认情况下,
repr
函数会像您看到的那样转义所有不可打印的字符

要获得仅十六进制表示,请使用

string.encode("hex")

注意:原始ByTestStream是正确的,您应该仅将其转换为十六进制以供查看,而不是用于完整性目的。它只是以一种奇怪的方式显示数据。

Ah,刚刚意识到我是以一种奇怪的方式创建十六进制字符串的(我将编辑问题来说明这一点)。当我停止执行此操作时,string.encode工作正常。标记作为答案。