您需要的是文件中所有数据集的列表。我认为这里需要的是recursive function的概念。这将允许您从一个组中提取所有的“数据集”,但是当其中一个看起来是组本身时,递归地执行相同的操作,直到找到所有数据集为止。例如:/

|- dataset1

|- group1

|- dataset2

|- dataset3

|- dataset4

伪代码中的函数应该如下所示:

^{pr2}$

例如:/dataset1是一个数据集:将路径添加到输出,给出out = ['/dataset1']

/group不是数据集:调用getdatasets('/group',file)/group/dataset2是一个数据集:将路径添加到输出,给出nested_out = ['/group/dataset2']

/group/dataset3是一个数据集:将路径添加到输出,给出nested_out = ['/group/dataset2', '/group/dataset3']

这是我们已经拥有的:out = ['/dataset1', '/group/dataset2', '/group/dataset3']

/dataset4是一个数据集:将路径添加到输出,给出out = ['/dataset1', '/group/dataset2', '/group/dataset3', '/dataset4']

此列表可用于将所有数据复制到另一个文件中。在

要制作一个简单的克隆,可以执行以下操作。在import h5py

import numpy as np

# function to return a list of paths to each dataset

def getdatasets(key,archive):

if key[-1] != '/': key += '/'

out = []

for name in archive[key]:

path = key + name

if isinstance(archive[path], h5py.Dataset):

out += [path]

else:

out += getdatasets(path,archive)

return out

# open HDF5-files

data = h5py.File('old.hdf5','r')

new_data = h5py.File('new.hdf5','w')

# read as much datasets as possible from the old HDF5-file

datasets = getdatasets('/',data)

# get the group-names from the lists of datasets

groups = list(set([i[::-1].split('/',1)[1][::-1] for i in datasets]))

groups = [i for i in groups if len(i)>0]

# sort groups based on depth

idx = np.argsort(np.array([len(i.split('/')) for i in groups]))

groups = [groups[i] for i in idx]

# create all groups that contain dataset that will be copied

for group in groups:

new_data.create_group(group)

# copy datasets

for path in datasets:

# - get group name

group = path[::-1].split('/',1)[1][::-1]

# - minimum group name

if len(group) == 0: group = '/'

# - copy data

data.copy(path, new_data[group])

当然,进一步的定制是可能的,这取决于您想要什么。你描述了一些文件的组合。那样的话你就得new_data = h5py.File('new.hdf5','a')

可能会给这条路加些什么。在

python与h5结合实例_使用h5py合并所有h5文件相关推荐

  1. python数据库应用开发实例_纯Python开发的nosql数据库CodernityDB介绍和使用实例

    看看这个logo,有些像python的小蛇吧 .这次介绍的数据库codernityDB是纯python开发的. 先前用了下tinyDB这个本地数据库,也在一个api服务中用了下,一开始觉得速度有些不给 ...

  2. python传递类的实例_使用Python将变量从一个类实例传递到另一个类实例?

    我在将一个类实例中定义的变量传递到另一个类实例时遇到问题.我对使用类比较陌生,但据我所知,变量可以通过简单地定义为类实例的一部分(例如在下面的示例中)从一个实例传递到另一个实例.虽然我以前使用过这个模 ...

  3. python导入数据聚类分析实例_聚类分析实战解析与总结 - 数据分析

    聚类分析是没有给定划分类别的情况下,根据样本相似度进行样本分组的一种方法,是一种非监督的学习算法.聚类的输入是一组未被标记的样本,聚类根据数据自身的距离或相似度划分为若干组,划分的原则是组内距离最小化 ...

  4. python树莓派串口通信实例_树莓派通过串口发送数据

    可以通过串口登陆树莓派,也可以通过串口向其他主机发送数据.树莓派的串口接受数据科技爱好者博客已经写过,可以参考这篇文章:树莓派与arduino串口通信实践.这篇文章教大家如果通过树莓派的串口发送数据. ...

  5. python树莓派串口通信实例_使用树莓派和Python实现ModbusTCP通讯

    树莓派以强大的性能与低廉的价格,非常适合作为物联网终端设备,树莓派将现场传感器采集到的设备传输到监控中心时,可以采用不同的语言与通讯协议.在工业现场中,Modbus是非常常见的一种通讯方式,本文以py ...

  6. python 二分类的实例_深入理解GBDT二分类算法

    我的个人微信公众号:Microstrong 微信公众号ID:MicrostrongAI 微信公众号介绍:Microstrong(小强)同学主要研究机器学习.深度学习.计算机视觉.智能对话系统相关内容, ...

  7. python量化交易策略实例_用 Python 实现你的量化交易策略

    Python 的学习者中,有相当一部分是冲着爬虫去的.因为爬虫可以帮你解决很多工作和生活中的问题,节约你的生命.不过 Python 还有一个神秘而有趣的应用领域,那就是量化交易. 量化交易,就是以数学 ...

  8. python画散点图程序实例_【112】用python画散点图和直线图的小例子

    import numpy as np import matplotlib.pyplot as plt import random # 数据量. SIZE = 13 # 纵轴数据.np.linspace ...

  9. python的函数式编程实例_函数式编程例子

    函数式编程例子 [篇一:函数式编程例子] 在 08 年的时候 ( 这经历记忆犹新 ) 我也跟 lz 一样,翻了好多文章, google 了好几个星期,最后我知道它 是这么个东西: ul li 它是函数 ...

最新文章

  1. Java面试题汇总2021最新(集合泛型含答案下载)
  2. leetcode算法题--最大加号标志★
  3. Oracle OFA目录结构
  4. raptor累乘流程图_Markdown快速上手指南
  5. 一篇搞懂mysql中的索引(大白话版)
  6. USACO-Section1.4 Barn Repair (贪心算法)
  7. 一句话了解 v-show 和 v-if 的区别
  8. 小白Linux下安装mysql
  9. Dubbo 框架设计与源码解读(配置解析优先级、线程分配、负载均衡、容错方案)
  10. 面向对象随笔(super关键字)
  11. Win/Chomer美化
  12. Firebug工具的介绍与安装
  13. js链接oracle数据库语法,js连接oracle数据库
  14. webpack打包报错 [webpack-cli] TypeError: merge is not a function
  15. 搜狗推送工具只搜狗快速收录方法点解
  16. 尚硅谷Maven2022----②单一架构案例
  17. c51 c语言 16位二进制转换为bcd码,16位二进制转换为BCD码的C51汇编程序.doc
  18. springdata jpa in查询
  19. python中turtle库绘制图形_Python如何使用turtle库绘制图形
  20. 新整理的开源Odoo13发布更新的部分功能模块信息

热门文章

  1. java 图像梯度检测_数字图像处理-边缘检测
  2. 使用SpringMVC参数传递时,解决get请求时中文乱码的问题
  3. spring boot配置druid(德鲁伊)
  4. Query String Parameters、Form Data、Request Payload的区别
  5. 8客户端安装后无法启动_新君越涉水后车辆无法启动
  6. java有几种变量_java有多少种变量?java类变量怎么使用?
  7. 二级c语言基础题库100题,二级C语言上题库100题.doc
  8. linux下用c语言写黄金矿工,C语言写的黄金矿工O(∩_∩)O---初稿,能玩了
  9. c++如何快速写出get set_如何快速写出一篇合格的毕业论文
  10. Eclipse使用————Working Set工作集