SambaドライバをインストールするとPythonでまれにIOErrorが発生する

SambaドライバをインストールするとPythonでまれにIOErrorが発生する

プログラム:

  1. サンバドライブマウント(sudo mount.cifs...)
  2. ジュピターノートブックスタート
  3. 複数のMATLABファイルを開き、それに対して重い操作を実行するスクリプトを実行します。
  4. コードを実行し、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ドライブの場合、短い応答遅延が発生する可能性があることを理解しています。おそらくそれが理由であろう。

私の質問は次のとおりです

  1. 問題の原因を診断する方法
  2. 自分のファイルに一時的にアクセスできない場合は、ファイルロードコマンドのラッパースクリプトを提案してもよろしいですか?scipy.io.loadmat(ファイル名))がクラッシュするのではなく、ファイルのロードを再試行しますか?

答え1

OSErrorが引き続きコードで返される場合は、それをキャッチして再試行してください。存在しない場合は、matlab を呼び出す前にファイルが存在することを確認してください。 MATLABが何時間も応答せずに実行される場合は、再試行ループを使用してファイルをパッチすることを検討してください。ソースコードはそこにあり、十分な権限があれば編集できます。

関連情報