【保存版】python pysnooper たった2行貼り付け 超強力 ウルトラスーパーアメイジングlogツール

変数ウォッチはたったの2行、これは最高 log不要(有ってもいいけど)

変数値の確認のため、print(変数)書きまくりやら、loggingなんちゃらやら設置しなくて同じ効果が自動で得られるすんごいモジュールがあった。

最初に pip install pysnooperでインストールしてください

関数の頭に@pysnooper.snoop()

import pysnooperでモジュールをインポート
変数値を出力したい関数の前に@pysnooper.snoop()と置くだけ

 

 

@pysnooper.snoop(‘ファイル名’)でファイル出力

画面出力が多すぎて目で追えない時は、@pysnooper.snoop(‘ファイル名’)とすれば、そのファイルに出力してくれる。ファイル名.txt ファイル名.log ファイル名.csv などにすれば良い。

デバックモードで ステップ実行 して、都度変数の値を出力してくれてる感じ。役に立ちそう。

毎回自動で[日付と時間]を入れたCSVファイルに出力

①モジュールをimportして
import datetime
import pysnooper

②関数の上にこの4行を置けば良いのです
today = datetime.datetime.fromtimestamp(time.time())
today.strftime(‘%Y/%m/%d,%H:%M:%S’)
snoop_file=’log\snoop’ + today.strftime(‘%Y-%m-%d-%Hh%Mm’)+’.csv’
@pysnooper.snoop(snoop_file)
def 監視したい関数()

この4行を出力したい関数の上に貼り付ければ良いのでーす

@pysnooper.snoop 欠点

 

情報量が多すぎてコンソール出力は変数の確認などとても、

textに出してもごちゃごちゃで見ずらい

拙者はCSVに出力して、変数毎にエクセルで色付けなどして確認しておる。

logと違って超簡単な分自分でコントロールできないが,そこはloggingで出せばいい。

 

ちなみに、関係ないし意味もないですけど動かしてるプログラムはこれ↓

Bitflyerの自動売買BOTに例外処理を入れて安定的に動くようにする