Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x 在不知道结构的情况下,是否可以使hdf5文件成为python 3.6中另一个文件的相同副本?_Python 3.x_Hdf5 - Fatal编程技术网

Python 3.x 在不知道结构的情况下,是否可以使hdf5文件成为python 3.6中另一个文件的相同副本?

Python 3.x 在不知道结构的情况下,是否可以使hdf5文件成为python 3.6中另一个文件的相同副本?,python-3.x,hdf5,Python 3.x,Hdf5,如果我有一个hdf5文件f1.h5,我想把这个文件复制到另一个文件(例如f2.h5),但我不知道f1.h5的结构,我想自动复制它,我可以用h5py的一些技巧吗?我不知道h5py的情况,但可以通过以下方法实现: f1=open('f1.h5','rb') f2=open('f2.h5','wb') f2.write(f1.read()) 读取第一个文件的每个字节,然后将其写入第二个文件。结构之类的东西不重要您可以使用.copy()方法将对象从f1.h5递归复制到f2.h5。您不需要知道模式:使

如果我有一个hdf5文件
f1.h5
,我想把这个文件复制到另一个文件(例如
f2.h5
),但我不知道
f1.h5
的结构,我想自动复制它,我可以用
h5py
的一些技巧吗?

我不知道h5py的情况,但可以通过以下方法实现:

f1=open('f1.h5','rb')
f2=open('f2.h5','wb')

f2.write(f1.read())

读取第一个文件的每个字节,然后将其写入第二个文件。结构之类的东西不重要

您可以使用
.copy()
方法将对象从
f1.h5
递归复制到
f2.h5
。您不需要知道模式:使用键访问根级别的组/数据集。如果源是组对象,默认情况下,将递归复制该组中的所有对象

import h5py
h5r=h5py.File("f1.h5", 'r')
with h5py.File("f2.h5", 'w') as h5w:
    for obj in h5r.keys():        
        h5r.copy(obj, h5w )       
h5r.close()

我不确定是否可以与具有访问daaset字段的文件一起使用。但我会试试这个,thanx@b2f,这适用于任何大小的文件吗?HDF5文件通常比系统RAM大,因此用户使用数据子集。这里有一个类似的答案: