プログラム:
- サンバドライブマウント(sudo mount.cifs...)
- ジュピターノートブックスタート
- 複数のMATLABファイルを開き、それに対して重い操作を実行するスクリプトを実行します。
- コードを実行し、1週間後に戻ってくるようにしてください。
90%の場合、すべてが問題なくうまく機能します。しかし、時にはIOErrorによってコードが途中で停止することがあります。
OSError Traceback (most recent call last)
/opt/anaconda/envs/py36qt5/lib/python3.6/site-packages/scipy/io/matlab/mio.py in _open_file(file_like, appendmat)
30 try:
---> 31 return open(file_like, 'rb'), True
32 except IOError:
OSError: [Errno 5] Input/output error:
もちろん、開くことができないファイルが存在することを確認し、スクリプトを再実行すると問題なく開くことができます。
私たちの研究所のLANに接続されたリモートSambaドライブの場合、短い応答遅延が発生する可能性があることを理解しています。おそらくそれが理由であろう。
私の質問は次のとおりです
- 問題の原因を診断する方法
- 自分のファイルに一時的にアクセスできない場合は、ファイルロードコマンドのラッパースクリプトを提案してもよろしいですか?scipy.io.loadmat(ファイル名))がクラッシュするのではなく、ファイルのロードを再試行しますか?
答え1
OSErrorが引き続きコードで返される場合は、それをキャッチして再試行してください。存在しない場合は、matlab を呼び出す前にファイルが存在することを確認してください。 MATLABが何時間も応答せずに実行される場合は、再試行ループを使用してファイルをパッチすることを検討してください。ソースコードはそこにあり、十分な権限があれば編集できます。