如何将输入()转换为字节(bytes)在Python 3中?

3

自从我开始使用Python 3版本后,我在通过socket发送字符串方面遇到了很多问题。我知道,在socket中发送字符串时,必须在字符串前加上 'b',将其转换为字节。但是当我需要将input()转换为字节时该如何操作呢?

我需要通过键盘输入发送一条信息到socket:

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("localhost",7500))

msg = input()
client.send(msg) 

然而,当我尝试时,我收到了以下错误:
TypeError: a bytes-like object is required, not 'str'

有人能告诉我如何将input()转换为字节吗?我总是使用2.7版本,不理解为什么3版本对套接字的处理如此烦人。 :(

2个回答

12

3
为了实现这一点,您可以使用:
import socket
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(("localhost",7500))
msg = input()
client.send(msg.encode())

它会返回字符串编码后的字节对象。请参见 str.encode

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接