2017-09-08 26 views
0

h5pyを使用しているときに私が受け取っているエラーについて少し混乱しています。私は別のディレクトリにあるh5pyファイルのセットをループするPythonスクリプトを適用しようとしています。私は次のPythonスクリプトh5py OSError:ファイルを開くことができません(ファイルの署名が見つかりません)

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: 
でから減少

Reduced/test_h5py

のサブディレクトリをPythonスクリプトを実行すると例えば、h5pyファイルの最初のセットは

Reduced/rho=0.75/2/Data/snapshots

に位置しています

すべて正常に動作し、スクリプトはデータをループして出力します。私は他のデータに同じPythonスクリプトを適用しようとすると、今、問題が発生し、私はからのパスでだけ修正して、以前のPythonスクリプトを実行すると、今

Reduced/rho=0.75/4/Data/snapshots

に位置h5pyファイルのセットで、すなわち、 2

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: 

4に、私は次のエラー

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()エラーであるかもしれないと思ったが、検索した後に問題を解決するための何も見つかりませんでした。ご協力いただきありがとうございます。

EDIT:

私が言及するのを忘れてしまいました。 Jupiterのノートブックでpythonスクリプトを実行し、個々のh5pyファイルにスクリプトを適用すると、2と4の両方のパスで正常に動作します。 h5pyファイルが開いていて、そこに保存されているデータを取得できるので、ファイルが破損しているか、hdf5形式ではないとは想像できません。

+0

見つからないメッセージファイルの署名は、ファイルがHDF5フォーマット –

+0

@Fadyサアドで申し訳ありませんが、私は言及を忘れてしまった、破損したかのいずれかであることを示唆しています。私がJupyterのノートブックでpythonスクリプトを実行し、個々のh5pyファイルにスクリプトを適用すると、h5pyファイルが開き、データを取得できるので、ファイルが破損しているか、hdf5形式ではないとは想像できません。 – Mattos

答えて

0

は、私は本当に私は、これは意味をなさないか助けていない場合には、事前にここにとても残念話しているかだけでは関係ありませんか分かりません。

それは誰もが私が私が持っている知識のほんの少しは役立つかもしれないと思ったので、年間で答えるようにしようとしなかったことを非常に迷惑なエラーです。

クラスタで作業しているときも同様の問題がありました。 h5pyflock()と呼ばれるものを使用しており、ファイルシステムのパフォーマンスに悪影響を及ぼすことがあることが判明しました。このためflock()

は時々許可されていません。あなたが誰かにelsesファイルシステムで作業している場合は、管理者に質問してください。もしそうでなければ、私はそれを回避する方法を見つけることができません。(私はflock()を使用しない他のライブラリを探しませんでした。

それはあなた自身のファイルシステムであるなら、あなたはflock()を許可することができるはずですが、私はこれを行うかどうかはわかりません。 Thisがあなたに役立つかもしれないNFS

私は確かにあなたが乗っているのを聞くことに興味がありますか?

関連する問題