将(大量)零写入二进制文件

2023-12-10

这可能是一个愚蠢的问题,但我无法找到正确的答案。我想存储(不要问为什么)a 的二进制表示(2000, 2000, 2000)零数组写入磁盘,二进制格式。实现这一目标的传统方法是:

with open('myfile', 'wb') as f:
    f.write('\0' * 4 * 2000 * 2000 * 2000)  # 4 bytes = float32

但这意味着创建一个非常大的字符串,这是根本没有必要的。我知道另外两个选择:

  • 迭代元素并一次存储一个字节(非常慢)

  • 创建一个 numpy 数组并将其刷新到磁盘(与上例中创建字符串一样消耗内存)

我希望找到类似的东西write(char, ntimes)(因为它存在于 C 和其他语言中)复制到磁盘上char ntimes以 C 速度,而不是以 Python 循环速度,无需在内存上创建如此大的数组。


我不知道你为什么对“Python的循环速度”这么大惊小怪,但是按照这样的方式写

for i in range(2000 * 2000):
     f.write('\0' * 4 * 2000)  # 4 bytes = float32

将告诉操作系统写入 8000 个 0 字节。后write返回,在下一个循环运行中再次调用它。

循环的执行速度可能比 C 中的稍慢,但这绝对不会产生任何影响。

如果可以使用稀疏文件,您也可以查找所需文件大小的位置,然后截断文件。

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

将(大量)零写入二进制文件 的相关文章

  • 通过 HTML5 文件和 URL API 正确创建和提供 PDF Blob

    好吧 假设我有文档数据存储在某处 让我们任意取this pdf http www grida no climate ipcc tar wg1 pdf tar 01 pdf 问题 1 我想要做的是对此 URL 进行 AJAX 调用 因为我需要
  • 将文件标记为从 Python 中删除?

    在我的一个脚本中 我需要删除当时可能正在使用的文件 我知道我无法删除正在使用的文件 直到它不再使用为止 但我也知道我可以将该文件标记为由操作系统 Windows XP 删除 我将如何在 Python 中做到这一点 以及另一个不依赖于 pyw
  • 如何将 UPX 与 pyinstaller 一起使用?

    如何将 UPX 与 pyinstaller 一起使用 我正在关注文档 我已经下载了UPX 我的文件如下所示 import csv import selenium import pandas print Hello 然后我运行 pyinsta
  • 使用pip安装pylibmc时出错

    您好 当我尝试使用 pip 在 OSX Lion 上安装 pylibmc 时 出现以下错误 pylibmcmodule h 42 10 fatal error libmemcached memcached h file not found
  • 使用 Python 将阿拉伯语或任何从右到左书写系统的字符串打印到 Linux 终端

    非常简单的例子是 city print city 我期望输出是 但实际上输出是相反的字符串 字母看起来有点不同 因为它们有开始 中间和结束形式 我无法将其粘贴到此处 因为复制粘贴会再次更正字符串的顺序 如何在 Linux 终端上正确打印阿拉
  • Django“模型”对象不可迭代

    我有一张表 其中显示了已注册的员工 我想根据他们的数据库生成一个简单的 HTML 页面 其中包括他们的姓名 id 职称等 为此 我将一个 id 传递给视图 以便它可以获取相应用户的详细信息并向我显示 一切正常 直到出现错误对象不可迭代 下面
  • 手动安装开放多语言世界网 (NLTK)

    我正在使用一台只能访问专用网络并且无法从命令行发送指令的计算机 因此 每当我必须安装 Python 包时 我都必须手动安装 我什至不能使用 Pypi 幸运的是 NLTK 允许我手动下载语料库 从here https www nltk org
  • 如何从 Python 3.5 降级到 3.4

    我想安装 kivy 链接在这里 https kivy org docs installation installation windows html install win dist 用于项目 但是 当尝试使用 pip 安装它所依赖的包时
  • 从网站上抓取数字和详细信息的数据

    我想从网站上抓取联系电话以及快递服务的相应详细信息 我无法从所有快递服务中获取联系电话和其他详细信息 例如姓名地址和评级 我分析的数据位于脚本标签中 请提出修复此问题的建议 import requests import pandas as
  • t /= d 是什么意思? Python 和错误

    t current time b begInnIng value c change In value d duration def easeOutQuad swing function x t b c d alert jQuery easi
  • 在 python 中使用 subprocess.call 时如何将 stdout 重定向到文件?

    我正在从另一个 python 脚本 A 调用一个 python 脚本 B 使用 subprocess call 如何将 B 的标准输出重定向到指定的文件 我正在使用 python 2 6 1 传递一个文件作为stdout参数为subproc
  • 使用 matplotlib 设置或固定二元分布值

    I ve animated a bivariate gaussian distribution using matplotlib 我已经计算过这个distribution通过调整COV matrix来考虑特定的变量 我可以提供有关此过程的更
  • 模拟类:Mock() 还是 patch()?

    我在用mock http www voidspace org uk python mock index html使用Python 想知道这两种方法中哪一种更好 阅读 更Pythonic 方法一 只需创建一个模拟对象并使用它 代码如下 def
  • 保存游戏最高分?

    我使用 pygame 在 python 中制作了一个非常简单的游戏 分数取决于玩家达到的级别 我将级别作为变量称为score 我想在游戏开始或结束时显示顶级 我会更乐意显示多个分数 但我见过的所有其他线程都太复杂 我无法理解 所以请保持简单
  • 如何连接多个字符串? [复制]

    这个问题在这里已经有答案了 如何将 stringList 中的所有字符串合并为一个而不打印它 例如 s joinStrings very hot day returns string print s Veryhotday 感觉有点倒退 但是
  • 如何在 matplotlib 中第一个 x 轴的底部添加第二个 x 轴?

    我指的是已经提出的问题here https stackoverflow com questions 10514315 how to add a second x axis in matplotlib 在此示例中 用户通过将第二个轴添加到与标
  • 返回吃异常

    我至少发现了以下行为weird def errors try ErrorErrorError finally return 10 print errors prints 10 It should raise NameError name E
  • 执行许多插入重复键更新错误:未使用所有参数

    所以我一直在尝试使用 python 2 7 15 使用 mysql connector 执行此查询 但由于某种原因 它似乎不起作用并且总是返回错误 并非所有参数都被使用 表更新有一个主键 即 ID 这是我尝试运行此 SQL 的查询 sql
  • 如何使用 PyAudio 选择特定的输入设备

    通过 PyAudio 录制音频时 如何指定要使用的确切输入设备 我的电脑有两个麦克风 一个内置 一个通过 USB 我想使用 USB 麦克风进行录音 这流类 https people csail mit edu hubert pyaudio
  • IOError:在 Linux 上的 ReportLab 中使用 matplotlib PNG 时“解码器 zip 不可用”,适用于 Windows

    我正在使用 ReportLab 打印 matplotlib 生成的图表 我可以在我的 Windows 开发机器上毫无问题地执行此操作 然而 当我部署到 Ubuntu 服务器时 渲染失败并出现所述错误 我假设我缺少一个 Python 模块 但

随机推荐

  • Firestore 查询中可以使用通配符功能吗?

    我正在尝试决定如何在 firestore 中对数据进行建模 基本上 它是一个列出欢乐时光和餐厅其他特色菜的应用程序 每个餐厅 酒吧可能会根据一周中的某一天提供多种特色菜和欢乐时光 这是我的一个非常简单的例子hoping对数据建模 name
  • Python的平台模块未检测到Windows 10

    我目前正在 Windows 10 上工作 如果平台是 Windows 10 则需要放置一些代码 因此 我检查了 python 文档并阅读了有关平台模块的信息 文档是这样说的 platform win32 ver release versio
  • 按下播放按钮后进行回调 - Youtube 嵌入视频

    按下播放按钮后是否可以执行 JavaScript 操作 我知道我需要使用 Youtube API 中的 onStateChange 函数 但我真的不知道从哪里开始 有什么帮助吗 谢谢 我还在这里发现了一些东西 http apiblog yo
  • 计算中的小数点为 。或者 ,

    如果我使用小数点输入数字 则小数点会根据国家和地区格式而变化 可以作为点 或作为逗号 而且我无法控制应用程序在哪个设备上使用 如果区域格式使用逗号 计算就会出错 放入 5 6 与有时只放入 5 和同一时间放入 56 是相同的 即使我以编程方
  • 如何存储 bash 脚本连续两次运行之间的状态

    我有 bash 脚本 它使用cron每分钟都有工作 我想保存脚本的状态以便在下次运行时重用 保存状态的最佳方法是什么 在本例中是分配了数字的变量 因此 在下一次运行中 该数字可以与之前运行的值进行比较 从文件保存和重新加载变量值的示例 us
  • 从 Rails ActiveRecord 的结果中排除一些 id

    我对某些部分的查询文章有以下声明 Article all joins gt sections conditions gt sections gt id gt 3 4 6 7 8 9 id not in gt some ids limit g
  • 将 javascript 客户端协调到单个后端游戏的最佳方法是什么?

    用于通知 javascript 客户端异步游戏中发生的更改 即其他客户端所做的移动 的最佳方法是什么 作为一个例子 假设一个回合制棋盘游戏 我应该让客户端每隔一秒左右轮询一次 PHP 后端以获取新的动作 还是有更好的方法向同一游戏中的其他客
  • 自定义 Android 通知磁贴的背景

    我注意到我的一个 Android 应用程序为其通知磁贴设置了自定义背景 如下面的屏幕截图所示 该应用程序如何为其通知设置自定义背景 我如何在自己的应用程序中实现同样的目标 NotificationCompat Builder this ch
  • JCO.destination 中未到达合作伙伴错误

    我在 java 程序中建立与 SAP 的连接时遇到问题 我按照 JCO 下载中的示例进行操作 但总是收到此错误 com sap conn jco JCoException 102 RFC ERROR COMMUNICATION Connec
  • Objective C:向 UIButton 调用的方法发送参数

    我有一个在单击 UIButton 时被调用的方法 当我创建按钮时 我希望它存储 NSTimer 作为参数 这是计时器和 UIButton 的创建 我如何添加要发送到方法的计时器 我试过了withObject timer但它给了我一个警告并在
  • 如何编写 KSP 以连接到 KERB_CERTIFICATE_LOGON

    大家好 我编写了一个自定义凭据提供程序 在使用用户名 密码作为凭据时工作正常 密码通过蓝牙传输 毕竟这并不困难 因为文档告诉您要实现哪些接口 现在我想更改凭据以使用证书 我发现我应该为此使用 KERB CERTIFICATE LOGON 结
  • 如何在 swiftUI 的末尾文本字段添加 % 符号

    我想制作一个自定义文本字段 它将显示金额和 符号 谁能告诉我如何实现这一目标 如果我输入 12 它应该自动插入 12 在 UIKit 中 它就像 textField text text struct UiTextFieldRepresent
  • 使用 React Native iOS Release Build 不会加载新代码,但版本会加载

    我的React Native应用程序不响应我在iOS发布模式下对代码的更改 我不知道为什么 但我无法上传包含更改的新版本 但是 当我在代码中应用更改时 版本更改是唯一更改的内容 我能做什么来修复它 无论我是从 XCode 还是使用代码片段构
  • 为seaborn 热图指定特定颜色

    我正在尝试使用 seaborn 制作热图 但无法更改特定值的颜色 假设值 0 应为白色 值 1 应为灰色 然后使用 cmap 提供的调色板 尝试使用面膜 但感到困惑 import matplotlib pyplot as plt impor
  • C# 在面板中绘制圆圈

    我正在做一个关于数学 阿波罗尼乌斯问题 的程序 但首先我的程序需要能够允许用户在面板上绘制三个圆圈 这些圆圈的大小和位置可以不同 我不知道如何允许用户在面板上绘制他们的尺寸圆圈 任何帮助将不胜感激 这是 Windows 窗体的简单演示 us
  • iOS 上的预计电池使用时间[重复]

    这个问题在这里已经有答案了 可能的重复 iPhone 计算电池寿命 我在应用商店中看到许多应用程序提供了不同使用模式 待机 音频和视频播放 Wi Fi 和 3G 浏览器使用 通话时间 的估计电池工作时间 我有类似的要求来计算这样的估计时间
  • C# 读取word文档

    我想阅读服务器中的word文档 doc和docx 服务器没有 安装了office 因此我不能使用com对象 也不能使用商业软件 有没有办法让我单独使用office工具 阅读word docs 2003年和2007年 不幸的是 没有很好的免费
  • SwiftUI - ForEach 删除转换始终仅应用于最后一项

    我正在尝试向我的动画添加删除动画ForEach 使得每个Card当移除时 其内部会扩展 这是我到目前为止所拥有的 问题是无论哪一个Card被按下 它是总是最后一个动画 有时 每张卡片内的文本都有奇怪的滑动 变形动画 这是我的代码 Ran i
  • 奇怪的“406 不可接受”错误

    当我尝试通过 Javascript 执行此操作时 我得到一个406 Not Acceptable error def show annotation Annotation find by id params id respond to do
  • 将(大量)零写入二进制文件

    这可能是一个愚蠢的问题 但我无法找到正确的答案 我想存储 不要问为什么 a 的二进制表示 2000 2000 2000 零数组写入磁盘 二进制格式 实现这一目标的传统方法是 with open myfile wb as f f write