H5PY OSERROR:无法打开文件(找不到文件签名)



我对使用H5PY时收到的错误感到有些困惑。我正在尝试将Python脚本应用于不同目录中的H5PY文件集循环。例如,第一组H5PY文件位于

降低/rho = 0.75/2/data/napshots

当我从下运行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/napshots

现在,当我运行上一个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格式损坏。

我真的不知道我在这里在说什么,如果这没有意义或没有帮助或不相关,请提前。

这是一个非常烦人的错误,没有人试图在一年多的时间内回答,所以我认为我拥有的一小部分知识可能会有所帮助。

我在群集工作时也有类似的问题。事实证明,h5py使用了称为flock()的东西,这有时会对文件系统性能产生负面影响。

因为有时不允许使用此flock()。如果您正在处理某人Elses文件系统,请询问Admin是否会将其付诸实践,如果不是这样,我将找不到解决方案(我没有尝试找到其他不使用flock()的库)。

如果它是您自己的文件系统,那么您应该能够允许flock(),但我不确定该怎么做。如果是 nfs

,这可能会有所帮助

我肯定有兴趣听到您的使用方式吗?

最新更新