web-dev-qa-db-ja.com

IPythonコンソールの出力をSpyderのファイルに保存する方法は?

プログラムにバグがあります:(

問題はそれです:

  • 私の_.py_コードは長く、実行に時間がかかります
  • バグがどこにあるのかわかりません

良いニュースは、pyファイルにたくさんのprint()があるため、潜在的に知ることができますバグが存在する場所。

悪いニュースは、私のバグが私のコンピュータをクラッシュさせるので、私がする方法はありませんipythonコンソールの出力を見て、何が問題だったかを確認してください。

プログラムの実行中に出力をディスクに書き込むにはどうすればよいですか?だから、再起動後もファイルを開いて、クラッシュの前に何が起こったのかを理解できますか?

この質問は Pythonでstdoutをファイルにリダイレクトしますか? とは異なります。

  • ファイルへの継続的な書き込み
  • spyder内から使用するもの

どうもありがとう!

8

非常に興味深い質問です。幸いなことに、IPythonには適切な魔法があります。これは %logstart と呼ばれます(完全なドキュメントについてはリンク先を参照してください)。

それを使い始めて、すべてのコマンドの入力と出力を保存するには、IPythonコンソールに入力するだけです

In[1]: %logstart -o

これにより、その瞬間から現在のディレクトリにあるipython_log.pyというファイルにセッションが記録されます。

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

3
Carlos Cordoba