Python 我如何创建一个;列表“;从hdf5文件读取的组数

Python 我如何创建一个;列表“;从hdf5文件读取的组数,python,hdf5,Python,Hdf5,我想从HDF5文件创建一个“组”名称的python列表。我可以用下面的代码来做,但是“groups”是一个全局变量,我想把它变成一个局部变量,这样我就可以读取多个HDF5文件,并为该文件而不是所有文件创建一个本地组列表 #!/usr/bin/env python2 # -*- coding: utf-8 -*- import h5py # this is global and not what I want - want this to be local groups=[] # use wi

我想从HDF5文件创建一个“组”名称的python列表。我可以用下面的代码来做,但是“groups”是一个全局变量,我想把它变成一个局部变量,这样我就可以读取多个HDF5文件,并为该文件而不是所有文件创建一个本地组列表

#!/usr/bin/env python2
# -*- coding: utf-8 -*-
import h5py

# this is global and not what I want - want this to be local
groups=[]

# use with visit items   ob is info about group or dataset
def printname2(name,ob):
    print "\t",name,' ==> ',ob
    groups.append(name)       # i want to replace this, how do I save "ob" in a list???

def print_attrs(f,s):
    print '\n'+s,' ',f[s]
    for i in range( len(f[s].attrs.keys()) ):
        print '\t',f[s].attrs.keys()[i],'\t\t',f[s].attrs.values()[i]


filename2 = './testFile.hdf5'
f = h5py.File(filename2, 'r')


print 'f.visit traverses recursively through the file structure'
#groups[]   --- I tried to re-define groups here but doesn't work...
f.visititems(printname2)  # groups is updated ; fix this

print '\nNumber of groups ',len(groups),'\n'

#        
attributes=[]
key=[]
for g in groups:
    key.append ( f[g].attrs.keys() )

print '\\nDUMP ALL GROUPS AND ATTRIBUTES PARSED ", len(groups)
for g in groups:
    print_attrs(f,g)

创建一个函数并将所有行为封装到其中?在python中,您可以在创建本地作用域的函数中定义函数。创建一个函数并将所有行为封装到其中?在python中,您可以在创建本地作用域的函数中定义函数。