【发布时间】:2017-09-08 23:32:48
【问题描述】:
我对使用 h5py 时收到的错误感到有些困惑。我正在尝试应用 python 脚本来循环遍历位于不同目录中的 h5py 文件集。例如,第一组 h5py 文件位于
缩减/rho=0.75/2/Data/snapshots
当我 从 Reduced 的子目录运行 python 脚本时
精简/test_h5py
使用以下 python 脚本
import h5py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import cmocean
import os
de.logging_setup.rootlogger.setLevel('ERROR')
# Plot writes
path = '../rho=0.75/2/Data/snapshots'
for filename in os.listdir(path):
with h5py.File(path+'/'+filename,'r') as file:
一切正常,脚本循环数据并给我一个输出。现在,当我尝试将相同的 python 脚本应用于其他数据时出现问题,即位于位于的 h5py 文件集
减少/rho=0.75/4/Data/snapshots
现在,当我运行之前的 python 脚本时,只修改了从 2 到 4 的路径
import h5py
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.colors as colors
import cmocean
import os
de.logging_setup.rootlogger.setLevel('ERROR')
# Plot writes
path = '../rho=0.75/4/Data/snapshots'
for filename in os.listdir(path):
with h5py.File(path+'/'+filename,'r') as file:
我收到以下错误
Traceback (most recent call last):
File "newest_edit.py", line 17, in <module>
with h5py.File(path+'/'+filename,'r') as file:
File "/usr/local/lib/python3.5/site-packages/h5py/_hl/files.py", line 269, in __init__
fid = make_fid(name, mode, userblock_size, fapl, swmr=swmr)
File "/usr/local/lib/python3.5/site-packages/h5py/_hl/files.py", line 99, in make_fid
fid = h5f.open(name, flags, fapl=fapl)
File "h5py/_objects.pyx", line 54, in h5py._objects.with_phil.wrapper
File "h5py/_objects.pyx", line 55, in h5py._objects.with_phil.wrapper
File "h5py/h5f.pyx", line 78, in h5py.h5f.open
OSError: Unable to open file (file signature not found)
任何人都可以理解这一点吗?我认为这可能是一个 os.listdir() 错误,但搜索后我没有找到任何解决问题的方法。感谢您的帮助。
编辑:
我忘了提。当我在 Jupyter 笔记本中运行 python 脚本并将脚本应用于单个 h5py 文件时,它对于 2 和 4 路径都可以正常工作。 h5py 文件打开,我可以检索存储在其中的数据,所以我无法想象它会是损坏的文件或不是 hdf5 格式的。
【问题讨论】:
-
消息文件签名未找到表明文件已损坏或不是 HDF5 格式
-
@Fady Saad 对不起,我忘了提。当我在 Jupyter 笔记本中运行 python 脚本并将脚本应用于单个 h5py 文件时,它工作得很好,h5py 文件打开并且我可以检索数据,所以我无法想象它会是损坏的文件或不是 hdf5 格式。