gpt4 book ai didi

Python 3 [类型错误 : 'str' object cannot be interpreted as an integer] when working with sockets

转载 作者:太空宇宙 更新时间:2023-11-03 17:36:57 25 4
gpt4 key购买 nike

我在终端中使用 python3 运行脚本,但是当我到达其中的某个点时,出现以下错误:

Traceback (most recent call last):
File "client.py", line 50, in <module>
client()
File "client.py", line 45, in client
s.send(bytes((msg, 'utf-8')))
TypeError: 'str' object cannot be interpreted as an integer

这是它引用的代码。

else :
# user entered a message
msg = sys.stdin.readline()
s.send(bytes((msg, 'utf-8')))
sys.stdout.write(bytes('[Me] '))
sys.stdout.flush()

我阅读了 bytes() 的官方文档和另一个来源

https://docs.python.org/3.1/library/functions.html#bytes

http://www.pythoncentral.io/encoding-and-decoding-strings-in-python-3-x/

但我还没有更了解如何解决这个问题。我意识到我的消息是一个字符串,我需要一个整数,但我对如何转换它感到困惑。您能帮助我,或者指导我找到可以帮助我的资源吗?

编辑1:我更改了行

s.send(bytes((msg, 'utf-8')))

s.send(bytes(msg, 'utf-8'))

但现在我收到以下错误:

Traceback (most recent call last):
File "client.py", line 50, in <module>
client()
File "client.py", line 46, in client
sys.stdout.write(bytes('[Me] '))
TypeError: string argument without an encoding

编辑2:根据@falsetru更新的答案。使用字节文字给了我

TypeError: must be str, not bytes

最佳答案

更改以下行:

s.send(bytes((msg, 'utf-8')))

如:

s.send(bytes(msg, 'utf-8'))

换句话说,传递一个字符串和一个编码名称,而不是将一个元组传递给bytes

<小时/>

更新根据问题更改:

您需要将一个字符串传递给sys.stdout.write。只需传递一个字符串文字:

sys.stdout.write('[Me] ')

关于Python 3 [类型错误 : 'str' object cannot be interpreted as an integer] when working with sockets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083798/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com