Python Memoryview 与 Bytearray?

标签 python arrays memoryview

什么时候应该在 Python2.7 中使用 memoryview?我只是找不到通过常规 bytearray 使用它的任何好处。此外,memoryview 不支持字符串方法,这使其完全无法使用。我错了吗?

最佳答案

好吧,最后,在网络软件上工作,我找到了 memoryview 的一个用例:当我们有一个固定大小的套接字缓冲区并且我们想要对其执行快速切片(读/写来自任何给定位置的数据 w/o 在内存中创建额外的副本),像这样:

buf = bytearray(4096)
mview = memoryview(buf)
socket.recv_into(mview)
print mview[256:]

因此,在某些情况下,在字节数组上使用内存 View 会很方便。 对于这种方案,您唯一应该记住的是:在字节数组上创建内存 View 后,您不能更改字节数组的大小,直到删除此内存 View ,字节数组将被限制为其初始大小并抛出 BufferError: Existing exports of data: object cannot be re-sized 每次尝试向那里添加更多数据时都会出错。

关于Python Memoryview 与 Bytearray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40069204/

相关文章:

python - 运行一个 shell 脚本,该脚本运行一个 python 程序,然后运行一个 R 程序

python - create() 接受 1 个位置参数,但给出了 3 个

python - 在 Google App Engine 中上传文件。如何获取文件到上传Handler类

c++ - C++ 中的指针/多维数组

python - 从 "asksaveasfilename"函数获取文件类型

Javascript - 如何比较数组中的两个索引?

c - 这两个声明有什么区别?

python : can I get a memoryview or a bytearray mapping to a mmap

python - 可以从左侧截断的 Python 缓冲区?

python - 如何将一片 memoryview 转换为 C 字符串(unsigned char*)?