我得出的结论是,这是h5py对象作为实例变量的复杂分配行为的奇怪表现。我重新编写了代码,以便在函数调用中处理每个文件,并且不重用变量。使用这种方法,我看不到相同的奇怪行为,而且效果似乎更好。为了清楚起见,该解决方案看起来更像:
files = glob(r'path*.h5')out_csv = csv.writer(open('output_file.csv', 'rb'))def extract_data_from_filename(filename): return extract_data_from_handle(hdf5.File(filename, 'r'))for filename in files: data = extract_data_from_filename(filename) for row in data: out_csv.writerow((filename, ) +row)


