【发布时间】:2018-12-10 23:12:44
【问题描述】:
我需要发送一个由十六进制值组成的命令,例如:“\x06\x01\x00\x44”。 然后使用内置的 .encode() 函数将字符串编码为二进制,然后发送到 Telnet。
由于我不明白的原因,如果字符串使用其他十六进制格式(0x 而不是 \x)进行格式化,这将不起作用:“0x060x010x000x44”,所以我试图只使用 \x。
我需要在转换之前将一个值插入到命令中,但我不知道如何接受整数输入并将其转换为十六进制字符串文字。
我可以这样做:
input_int = 100
hex_value = hex(input_int)
但这只会让我得到 hex_value = '0x64',它与 '\x64' 不同。
是否有我遗漏的快捷方式,或者有什么方法可以将 int 直接转换为十六进制文字字符串?
(顺便说一下,我使用的是 Python 2.7。)
【问题讨论】:
-
考虑用python3运行这个项目。
-
很遗憾我不能,该项目目前仅限于 2.7。
标签: python string hex escaping data-conversion