gpt4 book ai didi

Python HDF5 H5Py 问题打开多个文件

转载 作者:太空狗 更新时间:2023-10-30 01:17:08 26 4
gpt4 key购买 nike

我正在使用 64 位版本的 Enthought Python 来处理多个 HDF5 文件中的数据。我在 64 位 Windows 上使用 h5py 版本 1.3.1 (HDF5 1.8.4)。

我有一个对象为我的特定数据层次结构提供了一个方便的接口(interface),但独立测试 h5py.File(fname, 'r') 会产生相同的结果。我正在遍历一个长列表(一次约 100 个文件)并试图从文件中提取特定的信息。我遇到的问题是我从多个文件中获取相同的信息!我的循环看起来像:

files = glob(r'path\*.h5')
out_csv = csv.writer(open('output_file.csv', 'rb'))

for filename in files:
handle = hdf5.File(filename, 'r')
data = extract_data_from_handle(handle)
for row in data:
out_csv.writerow((filename, ) +row)

当我使用 hdfview 之类的工具检查文件时,我知道内部结构不同。但是,我得到的 csv 似乎表明所有文件都包含相同的数据。有没有人见过这种行为?我可以从哪里开始调试这个问题有什么建议吗?

最佳答案

我得出结论,这是 Perplexing assignment behavior with h5py object as instance variable 的一种奇怪表现形式.我重写了我的代码,以便每个文件都在函数调用中处理,并且不会重复使用变量。使用这种方法,我没有看到同样的奇怪行为,而且它似乎工作得更好。为清楚起见,解决方案看起来更像是:

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)

关于Python HDF5 H5Py 问题打开多个文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7675838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com