pythonの専門家に: 私はたくさんのprint()を使って変数をチェックしています。 完了したら、print()を削除する必要があります。それはかなり時間がかかり、人為的ミスを促します。デバッグ/コーディングをしたらprint()をどう扱うのですか
あなたはprint()をどのように扱っているのですか?コーディング中に削除しますか、最後に削除しますか?自動的に削除する方法がありますか、print()を使用して変数の値をチェックしていませんか?
pythonの専門家に: 私はたくさんのprint()を使って変数をチェックしています。 完了したら、print()を削除する必要があります。それはかなり時間がかかり、人為的ミスを促します。デバッグ/コーディングをしたらprint()をどう扱うのですか
あなたはprint()をどのように扱っているのですか?コーディング中に削除しますか、最後に削除しますか?自動的に削除する方法がありますか、print()を使用して変数の値をチェックしていませんか?
代わりにloggingを使用してください。ここではwhyです。
ロギングモジュールは、debug, info, warning, error, critical
元のような多くの単純な&便利なログ・メソッドが付属しています: -
EDIT 私はあなたが完了したらログを無効にするあなたの必要性について正しく理解わかりませんが、あなたがしたい場合はあなたが試すことができます離れてコンソールロギングで行う
#logger = logging.getLogger() # this gets the root logger
logger = logging.getLogger('my-logger')
logger.propagate = False
# now if you use logger it will not log to console.
EDIT
私はあなたがすべてのyを削除したいと思いますすべてのコードが正常に動作していることを確認したら、私たちのprint()/ loggging文をコードから削除してください!!!!
はあなたがデバッグレベルでログを使用するとデバッグが完了すると、情報のレベルを変更することができます
find . -name '<filename>.py' -exec sed -ri "s/(^\s*)(print.*$)/#\1\2/g" {} \;
ありがとうございます。しかし、いったん完了したら、logging.debugメッセージを削除するにはどうすればいいですか?@Tony Vincent – Lisa
「いったん完了したら」ということを正確に説明してください! –
これらのメッセージを表示したくないときに、画面に表示されるlogging.debugメッセージを無効にするにはどうすればよいですか?例:print(df.head)、print(df.tail)、print(df.describe())を実行します。 dfの外観を知ったら、print()を手動で削除します。私がロギングを使用している場合、正しく理解すれば、代わりにlogging.debug(print(df.head))を入れます。だから、print()を削除するのと同じことは何ですか? @トニーヴィンセント – Lisa
すべてのprint文をコメントアウトするREGXを使用してみてください。したがって、logger.debug()を使用したステートメントは出力されません。
私がしているのは、文字列に特別なテキストマーカーを付けてprint文を置くことです。私は通常print("XXX", thething)
を使用します。それから、その文字列の行を検索して削除するだけです。また、出力にスポットするのも簡単です。
標準ロギングモジュールの使用を強くお勧めします。さまざまなログレベル(DEBUG、INFO、WARNING、ERROR、CRITICAL)を設定できます。これにより、プログラムが生成する出力レベルをフィルタリングすることができます。これとインタラクティブなデバッグの間には、中間レベル/エキスパートレベルの標準的な "印刷"にはあまり使用されません –