Python 3.x 在不知道结构的情况下,是否可以使hdf5文件成为python 3.6中另一个文件的相同副本?
如果我有一个hdf5文件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。您不需要知道模式:使
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大,因此用户使用数据子集。这里有一个类似的答案: