Python3破坏有效的Python2代码:如何在Python插座中的缓冲区中发送一系列字节



基本问题,但是如果我有插座s,我想做:

s.sendto(("u001b" + 47 * "1"), (mysite.com, 80))

如果不将u001b转换为Python3中的"ESC"并使我的程序不运行?这在Python2中起作用。

在python 3中,您需要明确编码字符串

您可以做几种方法,但这可能是最简单的:

payload = bytes("u001b" + 47 * "1", 'utf-8')
s.sendto(payload, (mysite.com, 80))

在这种情况下,我们正在使用的论点是:

bytes(string, encoding[, errors]) -> bytes

如果您想使用整数列表,则可以尝试以下内容:

# 27 == ord('x1b')
# 49 == ord('1')
bytes([27] + [49] * 47)
# b'x1b11111111111111111111111111111111111111111111111'

最新更新