为什么我不能从一个文件夹中读取多个HDF5文件?同时,我可以很好地读取单个HDF5文件...(Python 3.7)

jaroh24

我在使用某些代码读取目录中存储的多个HDF5文件时遇到麻烦。我希望能够读取所有数据,然后打印存储在HDF5文件中的数据集之一。我有一个充满相同HDF5文件的文件夹(相同的4个数据集,每个数据集具有相同的形状),但是它们的数据有所不同(每个数据中存储的值不同)。为什么运行此程序时出现错误?

import h5py
import numpy as np
import os

directory = '/Users/folder'

# for i in os.listdir(directory):
for i in directory:
#     if i.endswith('.h5'):
        with h5py.File(i, 'r') as data:
            extent = np.array(np.degrees(data['extent']))
        print(extent)

这是第一个代码段中的错误:

OSError: Unable to open file (file read failed: time = Thu May 14 12:46:54 2020
, filename = '/', file descriptor = 61, errno = 21, error message = 'Is a directory', buf = 0x7ffee42433b8, total read size = 8, bytes this sub-read = 8, bytes actually read = 18446744073709551615, offset = 0)

但是我可以在单个HDF5文件上很好地运行它...

file = 'file.h5'

data = h5py.File(file,'r')
extent = np.array(np.degrees(data['extent']))

print(extent)

它确切地输出应该是什么:

[   1.   14.  180. -180.]
塔维安·巴恩斯(Tavian Barnes)

for i in directory遍历字符串中的字符。这样['/', 'U', 's', ...]错误告诉您它已打开,/但它是目录,而不是文件。您的注释掉os.listdir(directory)在正确的轨道上,但是产生的文件名需要附加到基本目录中以形成完整路径。你可能想要

for i in os.listdir(directory):
    if i.endswith('.h5'):
        with h5py.File(os.path.join(directory, i)) as data:
            ...

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

Related 相关文章

热门标签

归档