python - “bytes”对象不能被解释为整数

标签 python python-3.x

我有一个代码片段,它从套接字读取并将所有字节附加到一个数组(这就是它应该如何工作),但是当我执行下面的代码时:

def receiveData:
     bytemessage = bytearray()
     while True:             
           b = s.recv(1)
           logger.info(str(b))    
           bytemessage.append(b)

我在“bytemessage.append(b)”所在行收到此错误

'bytes' object cannot be interpreted as an integer Example

我可以记录从套接字读取的所有字节,并且所有字节都是字节格式,如 b'\x01' 有人有解决方案吗?

最佳答案

来自文档,bytearray 是 0 <= x < 256 范围内的可变整数序列。您只能附加该范围内的整数。 bytes 对象是同一范围内的整数的不可变数组。所以你可以这样做

bytemessage.append(b[0])

但是您也可以扩展 bytearray,如果您有一个包含多个字节的 bytes 对象,这会很方便。这也有效

bytemessage.extend(b)

这比创建字节对象列表并在最后组合它们更节省空间。就我个人而言,即使只添加一个字节,我也会进行扩展,因为我认为语法不会那么困惑。

关于python - “bytes”对象不能被解释为整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69279022/

相关文章:

python - AWS Lambda 和 Python 的 .pyc 文件

jquery - 在 Bootstrap 模式中提交 Django 表单

python - 将具有多个参数的函数传递给 DataFrame.apply

java - 用 JAVA 和 Python 编写的相同代码给出不同的结果(粒子滤波器)

python asyncio - ctrl+c 上的清理事件循环?和 close() 与 stop()

python - 类型错误:不支持的操作数类型/: 'str' 和 'int'

python - 如何使用 Pandas/Matplotlib 绘制 X 轴上的日期、Y 轴上的时间以及 HH :MM format as tick labels? 中的当前时间

python - 为什么 WCS 投影子图上的特征在 matplotlib 中位于错误的位置?

python - 基于类字段的生成函数?

python - python3 int(param1, param2) 中的第二个参数设置为 0 时是什么意思?