创建 HDF5 文件而不关闭它们时损坏文件 (h5py)

2023-11-23

我正在使用 h5py 将实验数据存储在 HDF5 容器中。

在交互式会话中,我使用以下命令打开文件:

measurement_data = h5py.File('example.hdf5', 'a')

然后我使用一些自写函数将数据写入文件(可以是几天实验中的许多 GB 数据)。在实验结束时,我通常会使用以下命令关闭文件

measurement_data.close()

不幸的是,有时会发生这样的情况:交互式会话在我没有明确关闭文件的情况下就结束了(意外终止会话、断电、由于某些其他软件而导致操作系统崩溃)。这总是会导致文件损坏和完整数据丢失。当我尝试打开它时,出现错误:

OSError: Unable to open file (File signature not found)

我也无法在 HDFview 或我尝试过的任何其他软件中打开该文件。

  1. 有没有办法避免文件损坏,即使它没有明确关闭?我读过有关使用 with 语句的内容here,但我不确定当会话意外结束时这是否有帮助。
  2. 我可以通过某种方式恢复损坏文件中的数据吗?有可用的修复程序吗?

每次写访问时总是打开和关闭文件听起来对我来说非常不利,因为我不断地从许多不同的函数和线程写入数据。所以我会对不同的解决方案感到更满意。


HDF5 设计者都知道损坏问题。他们正在努力在 1.10 版本中解决这个问题添加日记。同时您可以致电flush()定期确保您的写入已被刷新,这应该可以最大程度地减少一些损坏。您也可以尝试使用外部链接这将允许您将数据片段存储在单独的文件中,但在读取它们时将它们链接到一个结构中。

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

创建 HDF5 文件而不关闭它们时损坏文件 (h5py) 的相关文章

  • 在 python 2 和 3 的spyder之间切换

    根据我在文档中了解到的内容 它指出您只需使用命令提示符创建一个新变量即可轻松在 2 个 python 环境之间切换 如果我已经安装了 python 2 7 则 conda create n python34 python 3 4 anaco
  • 如何有条件地组合两个相同形状的 numpy 数组

    这听起来很简单 但我想我把它想得太复杂了 我想创建一个数组 其元素是从两个形状相同的源数组生成的 具体取决于源数组中哪个元素更大 为了显示 import numpy as np array1 np array 2 3 0 array2 np
  • 返回不包括指定键的字典副本

    我想创建一个函数 返回字典的副本 不包括列表中指定的键 考虑这本词典 my dict keyA 1 keyB 2 keyC 3 致电without keys my dict keyB keyC 应该返回 keyA 1 我想用一行简洁的字典理
  • 如何在 openpyxl 中设置或更改表格的默认高度

    我想通过openpyxl更改表格高度 并且我希望首先默认一个更大的高度值 然后我可以设置自动换行以使我的表格更漂亮 但我不知道如何更改默认高度 唯一的到目前为止 我知道更改表格高度的方法是设置 row dimension idx heigh
  • 基于 True/False 值的 Python 优雅赋值

    我想根据三个布尔值中的值设置一个变量 最直接的方法是 if 语句后跟一系列 elif if a and b and c name first elif a and b and not c name second elif a and not
  • 在python中调用subprocess.Popen时“系统找不到指定的文件”

    我正在尝试使用svnmerge py合并一些文件 它在底层使用 python 当我使用它时 我收到一个错误 系统找不到指定的文件 工作中的同事正在运行相同版本的svnmerge py 以及 python 2 5 2 特别是 r252 609
  • 一起使用 Argparse 和 Json

    我是 Python 初学者 我想知道 Argparse 和 JSON 是否可以一起使用 说 我有变量p q r 我可以将它们添加到 argparse 中 parser add argument p param1 help x variabl
  • 使用reduce方法的斐波那契数列

    于是 我看到有人用reduce方法来计算斐波那契数列 这是他的想法 1 0 1 1 2 1 3 2 5 3 对应于 1 1 2 3 5 8 13 21 代码如下所示 def fib reduce n initial 1 0 dummy ra
  • 在 GAE/Python 中放置一次性代码和每次代码的最佳位置在哪里?

    我是 Google App Engine 和 Python 的新手 我无法理解有关在 Google App Engine 上运行的 Python 应用程序的一些基本问题 如果我想要执行代码 对于每个传入的请求 我应该将其放在哪里 我们正在捕
  • 从 python 中的缩进文本文件创建树/深度嵌套字典

    基本上 我想迭代一个文件并将每行的内容放入一个深层嵌套的字典中 其结构由每行开头的空格数量定义 本质上 目标是采取这样的事情 a b c d e 并将其变成这样的东西 a b c d e Or this apple colours red
  • 如何在python中递归复制目录并覆盖全部?

    我正在尝试复制 home myUser dir1 及其所有内容 及其内容等 home myuser dir2 在Python中 此外 我希望副本覆盖中的所有内容dir2 It looks like distutils dir util co
  • Matplotlib 将颜色图 tab20 更改为三种颜色

    Matplotlib 有一些新的且非常方便的颜色图 选项卡颜色图 https matplotlib org examples color colormaps reference html 我错过的是生成像 tab20b 或 tab20c 这
  • 与函数复合 UniqueConstraint

    一个快速的 SQLAlchemy 问题 我有一个 文档 类 其属性为 数字 和 日期 我需要确保没有重复的号码同年 是 有没有办法对 数字 年份 日期 进行UniqueConstraint 我应该使用唯一索引吗 我如何声明功能部分 SQLA
  • 从 Apache 运行 python 脚本的最简单方法

    我花了很长时间试图弄清楚这一点 我基本上正在尝试开发一个网站 当用户单击特定按钮时 我必须在其中执行 python 脚本 在研究了 Stack Overflow 和 Google 之后 我需要配置 Apache 以便能够运行 CGI 脚本
  • Scikit Learn - K-Means - 肘部 - 标准

    今天我想学习一些关于 K means 的知识 我已经了解该算法并且知道它是如何工作的 现在我正在寻找正确的 k 我发现肘部准则作为检测正确的 k 的方法 但我不明白如何将它与 scikit learn 一起使用 在 scikit learn
  • DRF:以编程方式从 TextChoices 字段获取默认选择

    我们的网站是 Vue 前端 DRF 后端 在一个serializer validate 方法 我需要以编程方式确定哪个选项TextChoices类已被指定为模型字段的默认值 TextChoices 类 缩写示例 class PaymentM
  • 本地设置的 Cython 编译器指令是否影响一个或所有函数?

    我正在努力使用 Cython 加速一些 Python Numpy 代码 并且对 本地 设置 如定义的here http docs cython org en latest src reference compilation html在文档中
  • SpaCy 中的自定义句子边界检测

    我正在尝试在 spaCy 中编写一个自定义句子分段器 它将整个文档作为单个句子返回 我编写了一个自定义管道组件 它使用以下代码来执行此操作here https github com explosion spaCy issues 1850 但
  • 如何将 Pandas Dataframe 中的字符串转换为字符列表或数组?

    我有一个名为的数据框data 其中一列包含字符串 我想从字符串中提取字符 因为我的目标是对它们进行一次性编码并使之可用于分类 包含字符串的列存储在预测因子如下 predictors pd DataFrame data columns Seq
  • 将数组从 .npy 文件读入 Fortran 90

    我使用 Python 以二维数组 例如 X 的形式生成一些初始数据 然后使用 Fortran 对它们进行一些计算 最初 当数组大小约为 10 000 x 10 000 时 np savetxt 在速度方面表现良好 但是一旦我开始增加数组的维

随机推荐

  • 从两个字符串中获取编辑

    我将深入探讨我的问题 如果您不想阅读所有内容 可以跳至 TL DR 我正在尝试做什么 我需要存储一个 文件 文本文件 可以由用户编辑 如果我有原始文件 这可能是巨大的 Lorem ipsum dolor 坐 amet 用户要进行更改 Foo
  • 收集多组列

    我从一项在线调查中获得了数据 其中受访者回答了 1 3 次问题 调查软件 Qualtrics 将这些数据记录在多个列中 即调查中的 Q3 2 将包含列Q3 2 1 Q3 2 2 and Q3 2 3 df lt data frame id
  • 文本视图中的触摸坐标

    我在文本视图上使用触摸监听器 我可以通过运动事件获取触摸坐标 我可以获取我单击的字符索引或附近的字符坐标吗 Eg Hello Android 这是我的文字 现在我可以获得 x y 坐标 但是我可以获得字符索引吗 A 当我触摸它时 您必须重写
  • Rails 3.1 资产在生产中没有指纹

    刚开始适应rails 3 1 我开始编写coffeescript和sass 开发中一切正常 当我在生产中运行服务器时 我只得到 在页面的源代码中 没有生成哈希码 并且两个资产都有路由错误 Routing Error No route mat
  • C中“==”运算符的返回值

    我是否可以假设在 C 中 如果两个值相等 运算符将始终计算为 1 或者它可以计算为其他 真 值 struct ss int id struct os int sid int state int count struct ss s int s
  • 使用 ABAP 7.40+ 语法进行最有效的 itab 过滤

    在 7 40 版本中 我们有很多方法来过滤内部表数据 例如 可以使用这样的 ABAP 结构 FILTER操作员 DATA lt extract FILTER lt bseg USING KEY matnr bwtar WHERE matnr
  • 如何在node.js中保存.env文件中的更改

    I use dotenv用于读取环境变量 像这样 let dotenv require dotenv config path env console log process env DB HOST 现在我想保存更改 env文件 我找不到任何
  • 什么是非线性模式

    我正在阅读有关servant api DSL 参见 pdfhere 引用自第 5 2 节 类型安全链接 强调是我添加的 type family ElSymbol e s Symbol a Bool where ElSymbol s gt e
  • 如何使用自定义的类文件对象作为子进程 stdout/stderr?

    考虑这段代码 其中subprocess Popen被催生 我想写入子进程 stdout and stderr转到我的自定义文件对象 write 方法 但事实并非如此 import subprocess class Printer def i
  • PL/pgSQL 匿名代码块

    在 PostgreSQL 9 0 中 我有这个 PLPGSQL 匿名代码块 DO DECLARE bigobject integer BEGIN SELECT lo creat 1 INTO bigobject ALTER LARGE OB
  • Android任务亲和性的使用

    我正在阅读有关任务亲和性的内容并创建了一个具有以下活动的演示应用程序 A B gt 任务亲和力 com ando C D gt 任务亲和力 com ando E 据说 具有相同任务亲和性的活动会秘密打开另一个活动的单个实例 因此 我在每个活
  • Android 深色模式:夜间值不起作用

    我正在我的应用程序中开发日 夜功能 因此我阅读了这些文档并开始开发它 它在白天或夜间的默认值下工作正常 用精细方法AppCompatDelegate setDefaultNightMode 用于定制night我创建的主题颜色价值观之夜文件夹
  • java中如何找出谁创建了线程?

    在tomcat中 如果web应用程序确实停止了非守护线程 则tomcat无法通过shutdown sh关闭 例如 public class demo implements ServletContextListener public void
  • NSTextAlignment 对齐到 UILabel 文本对齐在 iOS6 上会崩溃

    我现在使用Xcode 4 5和iOS6 iOS6改变了UILabel文本对齐方式 label textAlignment NSTextAlignmentJustified 该代码将在带有 ios6 SDK 的 iPhone 6 0 模拟器上
  • 的证书与任何主题备用名称都不匹配

    错误 javax net ssl SSLException Certificate for
  • 是否有一种[直接]方法可以使用 SQL 对结果*first*、*then*按另一列进行分组?

    我看到在 SQL 查询中 GROUP BY子句必须先于ORDER BY 这是否意味着在分组之后完成排序会丢弃相同的行 因为我似乎需要首先按时间戳对行进行排序 then丢弃具有相同时间戳的行 我不知道如何实现这一点 我正在使用 MySQL 5
  • 需要帮助来理解带有 /d 的 perl tr 命令

    我在网上发现了以下 Perl 示例 usr bin perl string the cat sat on the mat string tr a z b d print string n result b b b 有人可以解释一下吗 d表示
  • 如何按需运行后台服务 - 而不是在应用程序启动时或在计时器上运行

    在 Net 5 Web API 中 我想运行一个发送批量电子邮件和短信的后台任务 我知道我可以创建一个继承自BackgroundService的服务 然后将其添加到Startup ConfigureServices方法中的DI容器中 如下所
  • 如何在 Gatsby 站点中保留或重新提供 React Context

    我使用 React Context API 来存储用户经过身份验证的信息 在开发模式下 当我输入任何重定向到 404 错误页面的 URL 时 上下文数据都会丢失 当我导航到有效页面时 先前登录的用户将不再登录 EDIT 我刚刚使用 gats
  • 创建 HDF5 文件而不关闭它们时损坏文件 (h5py)

    我正在使用 h5py 将实验数据存储在 HDF5 容器中 在交互式会话中 我使用以下命令打开文件 measurement data h5py File example hdf5 a 然后我使用一些自写函数将数据写入文件 可以是几天实验中的许