用来快速检查hdf5文件的Python脚本
检查hdf5文件的脚本:check_hdf5.py
import h5py as h5
import sys
filename = sys.argv[1]
with h5.File(filename, 'r') as filein:
print('######################')
print('## file attributes: ##')
print('######################')
for ii in filein.attrs.keys():
print('%s: %s'%(ii, filein.attrs[ii]))
print('####################')
print('## file datasets: ##')
print('####################')
for ii in filein.keys():
if type(filein[ii]) == h5.Dataset:
print('%s: %s'%(ii, filein[ii]))
print('attributes:')
for jj in filein[ii].attrs.keys():
print('\t%s: %s'%(jj, filein[ii].attrs[jj]))
print('-----------------')
print('##################')
print('## file groups: ##')
print('##################')
for ii in filein.keys():
if type(filein[ii]) == h5.Group:
print('%s: %s'%(ii, filein[ii]))
print('attributes:')
for jj in filein[ii].attrs.keys():
print('\t%s: %s'%(jj, filein[ii].attrs[jj]))
grp = filein[ii]
print('datasets:')
for kk in grp.keys():
print('\t%s: %s'%(kk, grp[kk]))
print('\tattributes:')
for ll in grp[kk].attrs.keys():
print('\t\t%s: %s'%(ll, grp[kk].attrs[ll]))
print('+++++++++++++++++')
print('-----------------')
使用方法:python check_hdf5.py hdf5文件名
。
检查npy
和npz
文件的脚本:check_np.py
import numpy as np
import sys
filename = sys.argv[1]
if len(sys.argv)>2:
trim_size = int(sys.argv[2])
else:
trim_size = 5
data = np.load(filename, allow_pickle=True)
print(filename)
if filename.endswith('.npz'):
for key in data.keys():
print('++++++++++++++++++')
print('key: %s'%key)
print('\tshape: %s'%(data[key].shape, ))
print('\tdtype: %s'%(data[key].dtype))
if np.prod(data[key].shape)<trim_size:
print('\tvalues: %s'%(data[key], ))
else:
try:
print('\tmax: %s'%np.max(data[key]))
print('\tmin: %s'%np.min(data[key]))
except:
pass
else:
print('\tshape: %s'%(data.shape, ))
print('\tdtype: %s'%(data.dtype))
if np.prod(data.shape)<trim_size:
print('\tvalues: %s'%(data, ))
else:
try:
print('\tmax: %s'%np.max(data))
print('\tmin: %s'%np.min(data))
except:
pass
使用方法:python check_np.py npy/npz文件名 n_trim
,其中n_trim
用于指定什么时候显示全部数值,什么时候显示最大最小值,当array
的size
大于n_trim
的时候只显示最大最小。