関数 VisitAllObjects が異なるファイルを受け入れて辞書を返すようにしようとしています。しかし、私が現在持っているものは同じ名前を指していますか? したがって、gdata が実行されると、fdata は gdata に変更されます。fdata と gdata が gh5 ファイルからの尊敬されるデータと等しくなるようにするにはどうすればよいですか?
f = h5py.File('testfile.gh5', 'r')
g = h5py.File('testfile2.gh5', 'r')
def VisitAllObjects(Group,Path, FileInfo=None):
if FileInfo is None:
FileInfo = {}
for i in Group.items():
if isinstance(i[1], h5py.Group):
VisitAllObjects(i[1], Path + '/' + i[0])
else:
DatasetName = Path + '/' + i[0]
FileInfo[DatasetName] = (Group[DatasetName].shape, Group[DatasetName].dtype)
return FileInfo
fdata = VisitAllObjects(f,'')
gdata = VisitAllObjects(g,'')
あなたの助けと、内部で visit_all_objects を呼び出すときに file_info を追加することで、これを機能させることができました。これに問題がある場合はお知らせください。さらに確認する必要がありますが、fdata と gdata を使用すると異なるデータが返され、fdata is gdata
False になります。ありがとう。
私はそれを次のように動作させました:
def visit_all_objects(Group,Path, file_info=None):
if file_info is None:
file_info = {}
for i in Group.items():
if isinstance(i[1], h5py.Group):
visit_all_objects(i[1], Path + '/' + i[0], file_info)
else:
DatasetName = Path + '/' + i[0]
file_info[DatasetName] = (Group[DatasetName].shape, Group[DatasetName].dtype)
return file_info