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はファイルが存在しない場合に通るのかな.確認してないけど.
実環境ではこんな感じ.
作業中の汚いコードなのでご容赦を.