Python“缓冲区”类型有什么用?

2024-03-29

有一个buffer输入Python,但是我该如何使用它呢?

In the Python 文档关于buffer() https://docs.python.org/2.7/library/functions.html#buffer,描述为:

buffer(object[, offset[, size]])

对象参数必须是支持缓冲区调用接口的对象(例如字符串、数组和缓冲区)。将创建一个引用对象参数的新缓冲区对象。缓冲区对象将是从对象开头(或从指定偏移量开始)的切片。切片将延伸到对象的末尾(或者将具有由大小参数指定的长度)。


用法示例:

>>> s = 'Hello world'
>>> t = buffer(s, 6, 5)
>>> t
<read-only buffer for 0x10064a4b0, size 5, offset 6 at 0x100634ab0>
>>> print t
world

本例中的缓冲区是一个子字符串,从位置 6 开始,长度为 5,并且它不占用额外的存储空间 - 它引用字符串的一个切片。

这对于像这样的短字符串来说不是很有用,但在使用大量数据时可能是必要的。这个例子使用了一个可变的bytearray:

>>> s = bytearray(1000000)   # a million zeroed bytes
>>> t = buffer(s, 1)         # slice cuts off the first byte
>>> s[1] = 5                 # set the second element in s
>>> t[0]                     # which is now also the first element in t!
'\x05'

如果您想要对数据有多个视图并且不想(或不能)在内存中保存多个副本,这会非常有帮助。

注意buffer http://docs.python.org/library/functions.html#buffer已被名称更好的替代memoryview http://docs.python.org/library/stdtypes.html#memoryview在 Python 3 中,尽管您可以在 Python 2.7 中使用其中之一。

另请注意,如果不深入研究 C API,则无法为自己的对象实现缓冲区接口,即无法在纯 Python 中实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python“缓冲区”类型有什么用? 的相关文章

  • 使用 scikit-image 去模糊图像

    我正在尝试使用skimage restoration wiener http scikit image org docs dev api skimage restoration html skimage restoration wiener
  • Kafka 一遍又一遍地重放消息 - 心跳会话已过期 - 标记协调器已死亡

    使用 python kafka api 从只有少量消息的主题中读取消息 Kafka 不断地一遍又一遍地重放队列中的消息 它从我的主题接收一条消息 返回每条消息内容 然后抛出ERROR Heartbeat session expired ma
  • Plotly:如何使用日期时间索引绘制中心有一条线的范围?

    我想绘制一条周围有范围的线 就像这张照片所示 我发布了一个原始问题 但没有指定索引是日期时间索引 我以为这并不重要 但我错了 有一个答案用数字索引覆盖它 Plotly 如何制作具有多条线和标准差阴影区域的图形 https stackover
  • 如何在Python中将字符串转换为复数?

    我正在尝试将输入字符串转换为浮点数 但是当我这样做时 我不断收到某种错误 如下面的示例所示 gt gt gt a 3 3j gt gt gt b complex a Traceback most recent call last File
  • 如何在python中将纬度经度转换为十进制?

    假设我有以下内容 latitude 20 55 70 010N longitude 32 11 50 000W 转换为十进制形式最简单的方法是什么 有图书馆吗 从秒形式转换会更简单吗 149520 220N 431182 897W 为了处理
  • Python 的局限性是什么? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我花了几天时间阅读有关 C 和 Python 的内容 发现 Python 非常简单且易于学习 所以我想知道它真的值得花时间学习吗 或者我应该花时
  • Selenium + Python如何监听元素的变化

    这个想法是创建一个机器人来读取聊天消息 所有消息都在一个ul gt li 不必写消息 例如 ul class message list li class message Hello There li li class message Hel
  • 使用 PIL 对图像进行着色,同时保持透明度?

    好吧 情况是这样的 我想使用 Python 图像库来 主题化 图像 如下所示 Theme color 33B5E5 IN OUT 我使用 ImageMagick 命令得到了结果 convert image png colorspace gr
  • 敌人不会在 pygame 中自行移动[重复]

    这个问题在这里已经有答案了 好吧 所以我的敌人只有在我移动角色时才会移动 但有时它也会完全从游戏窗口中产生 还有背景 玩家和敌人 在我按下移动按钮之前不会弹出 我对此感到非常抱歉 lmfao 也对我被告知将它们放在那里以提醒 wtf 的文本
  • 在测试中检查 CLI 的退出代码

    我正在为命令行工具编写自动化测试 本质上 我想使用各种选项调用 CLI 并测试退出代码和 或输出 我的测试如下所示 from mymodule cli tool import main def test args capfd with py
  • 如何根据 pandas 列注释散点图中的点

    Wanted Age 作为 x 轴 Pos 作为 y 轴 标签为 Player 名字 但由于某种原因 无法对点进行标记 Code import numpy as np import matplotlib pyplot as plt impo
  • 无法在 AWS Lambda 上使用请求模块

    我需要在每天运行一次的 python 脚本中进行休息调用 我无法使用 AWS Lambda 将 requests 包打包到我的 python 包中 我收到错误 无法导入模块 lambda function 没有名为 lambda funct
  • PyQt5:如何将 QPushButton 连接到插槽?

    好吧 几乎所有教程 可理解的用人类语言编写的文档都是针对 PyQt4 的 但是 PyQt5 改变了整个 将按钮连接到插槽 的工作方式 但我仍然不知道如何做到这一点 我在 QtDesigner 中做了一个快速 gui 并且有一个 QPushB
  • 如何将 MNIST 图像下载为 PNG

    我想将 MNIST 图像作为 PNG 文件下载到我的计算机上 我找到了这个页面 http yann lecun com exdb mnist http yann lecun com exdb mnist 我按下后 train images
  • lxml:编写增量漂亮的打印 xml

    我正在处理非常大的 XML 文件 gt 1GB 并且需要一种方法来增量写入它们 有一个顶级元素和数千个大型第二级元素 每个元素都有自己的多级层次结构 我试过这个 from lxml import etree with etree xmlfi
  • 如何使用 numpy 将向量填充和/或截断为指定长度?

    我有几个清单 a 1 2 3 b 1 2 3 4 5 6 其长度可变 我想返回一个长度为 5 的向量 这样如果输入列表长度 5 那么它将在第 5 个元素处被截断 例如 输入a会回来np array 1 2 3 0 0 并输入b会回来np a
  • 如何在 Jinja2 中包含具有相对路径的模板

    我正在尝试在模板中包含同一文件夹中的另一个模板 为此 我只是在做 import header jinja2 问题是我不断收到TemplateNotFound error 我的模板文件夹看起来像 myProject templates arb
  • 如何通过python将python字典存储到mysql数据库中

    我试图通过将字典转换为字符串然后尝试插入来将以下字典存储到 mysql DB 中 但出现以下错误 如何解决这个问题 或者有其他方法将字典存储到 mysql DB 中吗 dic office component office Word2010
  • 如何将焦点设置到 django 表单元素的 CharField

    我的登录页面使用 Django 表单 I want to set focus to the first textField username when the page loads 我尝试使用 Jquery 如下 但没有得到结果 forms
  • 为调色板图像分配不同的调色板索引

    我正在用 Python 和 Pygame 编写游戏 为此 图形将采用旧视频游戏机 如 NES 的风格 因此 图形由具有 2 位 4 色 图像的单个图块集文件组成 我希望在加载这些图像时能够为这些图像分配任意 4 色调色板 我想要做的是使用

随机推荐

  • 协变类型 T 发生在不变位置

    我正在 Scala 中迈出第一步 我想让以下代码起作用 trait Gene T val gene Array T 编译器给出的错误是 covariant type T occurs in invariant position in typ
  • 在 React 中,如何将参数从子组件传递到父组件?

    在 React JS 中 我无法将值从子组件传递到父组件 这个问题是上一个问题的后续问题在 React JS 中 我如何告诉父组件子组件发生了什么事 https stackoverflow com questions 58403770 in
  • 访问 firebase firestore 数据库仪表板是否会被视为读取操作?

    我现在正处于该项目的开发阶段 目前该项目仅使用一个 Android 应用程序作为前端 Android 使用限制和分页进行查询 但阅读的文档总数远远超出了预期 我试图弄清楚这一点 为什么即使用户只有一个 我 阅读的文档数量却如此之大 如果阅读
  • 带红色圆圈的 Intellij Idea 文件

    我的 Intellij Idea 在 Project Explorer 中的文件名都有一个红色小圆圈 上面写着 J 那代表什么 IntelliJ 识别出这是一个 java 文件 但它没有标记为项目源的一部分 检查您的项目是否遵循 Maven
  • 如何防止在 Vim 中遍历跳转列表时离开当前缓冲区?

    I frequently have several buffers open in my Vim session This means that my jump list stores locations from several buff
  • 使用 Jest 模拟基于承诺的请求

    我正在尝试使用 Jest 对函数进行单元测试 但在处理 jest 模拟模块时遇到了一些麻烦 相当于 Nodejs 世界中的 rewire 或 proxyquire 我实际上正在尝试测试是否已使用一些参数在模拟模块上调用了间谍 这是我要测试的
  • 在 ASP.NET MVC 的 Windsor 配置中,控制器的生活方式是否应该始终是瞬态的?

    我遇到了一个问题 我认为 Html DropDownList 会在我第一次提交表单时回发所选值 但每个后续回发只会发布初始回发中的数据 因此 我将生活方式 瞬态 添加到为温莎城堡配置控制器的组件元素中 这解决了问题 但当然使回发需要更长的时
  • SQLAlchemy:“NoneType”对象没有属性“drivername”

    我正在尝试将我的 Flask 应用程序连接到本地 MySQL 数据库进行测试 我创建了一个 Flask 对象和一个类来表示成功连接后创建的示例表 这些是我的项目的本地环境变量 env LOCAL MYSQL URL mysql Userna
  • 如何从文件中提取多行的电子邮件标题

    我正在尝试在 Linux 上使用 sed 从电子邮件文件中提取 To 标头 问题是 To 标头可能位于多行上 e g To email protected cdn cgi l email protection email protected
  • 在Excel中使用VBA查找活动单元格的列标题名称

    我有一个从数据列表创建的表 如何找到每列的标题文本 当我选择活动单元格的标题时 它会高亮为橙色 但我想使用 Visual Basic 检索该值 我能够找到 Excel 工作表的地址 但我需要表格的列标题 Private Sub Worksh
  • Hibernate 验证器验证约束 if @Constraint(validated by = {})

    我有一个 Spring Web 应用程序 它使用 hibernate 验证器进行验证 我有位于不同项目中的约束注释 我需要在我的 Spring 项目中拥有针对这些约束的验证器 因为我需要一些服务来执行验证 所以情况是 我无法将约束验证器放在
  • 使用R识别PDF表格

    我正在尝试从一些 pdf 报告内的表格中提取数据 我看过一些使用 pdftools 和类似软件包的示例 我成功地获取了文本 但是 我只想提取表格 有没有办法使用 R 来识别和提取表格 很好的问题 我最近也在想同样的事情 谢谢 我做到了 与制
  • HP (Mercury) 质量中心的高质量替代品? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 如何从嵌套列中提取 json 到数据帧

    我正在从 TD Ameritrade API 中提取股票数据 并且希望将其存储在 DataFrame 中 从 API 中 我得到一个嵌套的 JSON 对象 当我将其放入数据框中时 我得到 4 列 索引 蜡烛 空 符号 然而 蜡烛内部是一个字
  • 在 Windows 上通过 SSH 进行 Git 推送不起作用

    我有一个谜要问你们 在这个问题上苦苦挣扎了半天之后 我需要你的经验来启发我在 Windows 上使用 msysgit 来使用 git 上下文 视窗8 msysgit 最新版本 Using SSH密钥认证 Pagent使用 valid 处理
  • 如何从同一类型的另一个方法中使用 &mut self 调用方法?

    我有一个Scanner结构体有一个scan mut self 方法实施 看起来像这样 pub struct Scanner input String output Vec
  • 如何将 std::variant 作为 VARIANT* 传递给 ExecWB?

    我看过这篇关于使用的文章std variant https en cppreference com w cpp utility variant 这是因为以下代码引发了代码分析警告 void CChristianLifeMinistryHtm
  • Zend Framework:重用从 Zend_Db_Select::getPart() 返回的 WHERE 子句

    我有一个包含 WHERE 的 SELECT 对象 我可以使用返回 WHEREgetPart Zend Db Select WHERE 这会返回类似这样的内容 array 0 gt string clienttype agent 1 gt s
  • 缓存问题 MySQL 或文件系统

    当您缓存检索的数据时 是否存在明显的速度性能差异 从数据库到文件系统上的文件 例如 htdocs cache cachefile 而不是直接从 MySQL DB 获取它 多谢 这在很大程度上取决于您的磁盘IO 数据库的大小 数据库配置 数据
  • Python“缓冲区”类型有什么用?

    有一个buffer输入Python 但是我该如何使用它呢 In the Python 文档关于buffer https docs python org 2 7 library functions html buffer 描述为 buffer