Numpyのloadtxtで空ファイルを開くとバグる問題

loadtxtで空ファイルを開くとバグる

タイトル通りですが,上手く処理できません.

現在,行動認識系の国際ワークショップに出るために,テストデータを読みながら手法を模索中なのですが,その中に欠損ファイルが含まれており,その処理でつまづきました.

この欠損ファイル,ヘッダーのみ存在し,データは0行という構成のため,ファイル自体は存在します.

In [1]: data
Out[1]: array([], dtype=float64)

という感じで,読み込まれてはいたので,

if data == []:
  continue

とかで切り抜けようとしたんですが,これがなぜかうまくいかない.自分のコードが悪いのかもしれんけど.  

で,検索すると,下記サイト様を発見.

Numpyのloadtxtで空のファイルを開くとUserWarningmkacky.wordpress.com  

UserWarning: loadtxt: Empty input file

というエラーは見たような見てないような気がするが,検索ワードのために入れておく.ちょっとこのネタは情報が少なかったので.

 

で,結論,そのままですが,

import warnings

with warnings.catch_warnings():
    warnings.filterwarnings("error")
    
    try:
            空じゃなかった場合の処理
        except IOError:
            sys.exit()  # 終了するなら
            continue  # for文とかで続けるなら
        except UserWarning: 
            sys.exit()  # 終了するなら
            continue  # for文とかで続けるなら

こんな感じで.IOErrorはファイルが存在しない場合に通るのかな.確認してないけど.  

実環境ではこんな感じ.

作業中の汚いコードなのでご容赦を.