ここでは非常に奇妙な問題があります。私は、h5pyを使って作成したHDF5ファイルを読み込む関数と、前の関数から返された内容を連結する新しいHDF5ファイルを作成する関数の2つの関数を持っています。返されたh5pyオブジェクトインスタンスにアクセスできない
def read_file(filename):
with h5py.File(filename+".hdf5",'r') as hf:
group1 = hf.get('group1')
group1 = hf.get('group2')
dataset1 = hf.get('dataset1')
dataset2 = hf.get('dataset2')
print group1.attrs['w'] # Works here
return dataset1, dataset2, group1, group1
、今の問題は、データセットと作成し、WD1、WD2、WG1とWG2に代表される新しいファイルのプロパティは、私がアクセスすることができているファイル機能
def create_chunk(start_index, end_index):
for i in range(start_index, end_index):
if i == start_index:
mergedhf = h5py.File("output.hdf5",'w')
mergedhf.create_dataset("dataset1",dtype='float64')
mergedhf.create_dataset("dataset2",dtype='float64')
g1 = mergedhf.create_group('group1')
g2 = mergedhf.create_group('group2')
rd1,rd2,rg1,rg2 = read_file(filename)
print rg1.attrs['w'] #gives me <Closed HDF5 group> message
g1.attrs['w'] = "content"
g1.attrs['x'] = "content"
g2.attrs['y'] = "content"
g2.attrs['z'] = "content"
print g1.attrs['w'] # Works Here
return mergedhf.get('dataset1'), mergedhf.get('dataset2'), g1, g2
def calling_function():
wd1, wd2, wg1, wg2 = create_chunk(start_index, end_index)
print wg1.attrs['w'] #Works here as well
を作成し、私は属性データにアクセスすることができますが、私はそれを読み込んで値を返すことはできません。
呼び出し元関数への参照を返したときに、誰でもデータセットとグループの値を取得する手助けがありますか?
ありがとう、Pythonには比較的新しいので、「やっている」ことが何をしているのか分かりませんでした。私はすでにデータセットのコンテンツをコピーして取得していましたが、グループはすべての問題を作成していました。 もう1つの質問ですが、hf.close()を使ってファイル参照を閉じないと、次にファイルを読み込んだときに自動的に上書きされるか閉じられますか? –
私は理解していません。 'hf.close()'が呼び出されるまで、データは実際には書き込まれません。 – Yossarian
強制的にデータを書き込むにはhf.flush()を使用していますので、突然の動作は望んでいませんが、応答に感謝します。 –