0

pyfits ( http://www.stsci.edu/institute/software_hardware/pyfits ) を使用して、作業中のスペクトルを開いたり書き込んだりする必要があります。問題は、「writeto」関数を使用して .fits ファイルを書き込んで上書きするたびに、「既存のファイルを上書きします: XXX.fits」というメッセージが画面に表示されることです。この特定のメッセージを表示しないようにプログラムに指示することは可能ですか?

私はすでにチェックしており、このメッセージを非アクティブにする「writeto」関数のキーワードを見つけることができなかったので、特定の関数のすべての出力(エラーの場合を除く)を何かにリダイレクトするようにPythonに指示する必要があるかどうかを考えていました/dev/null など。

最悪のシナリオは、おそらく「ロギング」を使用してすべての出力をファイルにリダイレクトすることだと思いました..

何か案は?

4

2 に答える 2

1

ライブラリは Pythonwarningsモジュールを使用して、既存のファイルを「上書き」すると警告を発します。

同じモジュールを使用して、警告を抑制することができます。

import warnings

with warnings.catch_warnings():
    warnings.simplefilter("ignore")
    pyfits.writeto(...)

コンテキスト マネージャーを使用すると、発生する可能性catch_warnings()のあるすべての警告が抑制されますpyfits.writeto()。特定のメッセージを無視するためのフィルターを構成することもできます。

import warnings
warnings.filterwarnings('ignore', message='Overwriting existing file .*', module='pyfits\.hdu.*')

たとえばOverwriting existing file、で始まるモジュールによって生成されたで始まるメッセージを無視します。pyfits.hdu

于 2013-02-18T14:13:11.673 に答える
0

warnings.filterwarningsメッセージを抑制するために使用できます。追加するだけ

warnings.filterwarnings('ignore', message='Overwriting existing file')
于 2013-02-18T14:12:51.233 に答える