2016-11-23 10 views
1

私は私のプログラムのバグを持っている:(IPythonコンソールの出力をSpyderのファイルに保存する方法は?

問題があることである:

  • マイ.pyコードはバグが
  • ここで私は知らない長さであり、そして
  • を実行するために年齢を取ります

良いニュースは、私は私のpyファイルにprint()の多くを持っているということですので、私は潜在的にどこのバグの生活を知ることができます。

悪いニュースは私のバグが私のコンピュータクラッシュを作るということですので、私はipythonコンソールの出力を見て、何が悪かったのかを参照するための方法はありません。

プログラムの実行中に出力をディスクに書き込む方法を教えてください。だから私はクラッシュする前に何が起こったのか理解するために再起動後もファイルを開くことができるのですか?

私はスパイダー内

から多くの感謝を使用する

  • 何かを提出する

  • +1

    printステートメントを使用する代わりにファイルに書き込みますか?ロガー[モジュール](https://docs.python.org/2/library/logging.html)を使用しますか? printステートメントの代わりにデバッガを使用しますか?ああ、実際に別の[ポスト]を覚えていた(http://stackoverflow.com/questions/4675728/redirect-stdout-to-a-file-in-python) –

    +0

    ありがとう@AlbertRothmanしかし、私はそれを行う方法は分かりません。それを回答として掲示し、何をすべきか説明できますか? –

    +1

    ええ、あなたの質問は、私が上にリンクした投稿のかなりの複製です。あっち見て。 –

    答えて

    2

    非常に興味深い質問!幸いなことに、IPythonにはあなたにとって正しい魔法があります。 %logstartと呼ばれています(詳細はリンク先をご覧ください)。それを使用して起動し、すべてのコマンドの入力と出力を保存し、ちょうどIPythonコンソールを入力

    In[1]: %logstart -o 
    

    、それはあなたの中に置かれipython_log.pyというファイルに上のその瞬間からあなたのセッションを記録しますするには

    カレントディレクトリ。

    %logstartは非常に柔軟なので、保存するファイルを選択したり、セッションを保存する方法(純粋なPythonまたはIPythonコマンド)を選択することができます。

    +0

    ha!あなたは上司@carloscordobaです! –

    +1

    ありがとう!IPythonはこのような小さな財宝をたくさん持っています:-) –

    +0

    @carloscorobaのサイドノートには、すぐに新しいバージョンのanacondaが来ますか?あなたの素晴らしい仕事のおかげで再び –

    関連する問題