web-dev-qa-db-ja.com

iPythonノートブックでセルの出力を保存する方法は?

IPythonノートブックのTEXT出力cellをディスク上のファイルに保存できるようにしたいと思います。

2つの追加の要件/要求があります。

  • セルを再実行して、出力を最新のもので上書きできます。
  • ノートブック内の出力も表示します。

私は_%%capture_マジックを使用してiPythonノートブックのセルをファイルに基本的に保存する方法を理解しましたが、十分に柔軟ではないようです。セルを再実行するたびに追加し続けて、取得できません。同じセル内に表示します。

ここに私がこれまでに持っているものがあります:

_%%capture cap --no-stderr
print 'stuff'
with open('output.txt', 'w') as f:
    f.write(cap.stdout)

# clear the cap by deleting the variable here?
# del cap 
_

書き込みの後にcap.show()を配置しようとすると、表示されないようです。代わりに、出力をcap変数に2回入れます。

20

タイプミスがあり、_cap.stout_にdがありません。 _cap.stdout_である必要があります。以下をテストしましたが、問題なく動作しました。 cap.show()は "stuff"も出力し、セルを再実行するとファイルが上書きされました。

_%%capture cap --no-stderr
print 'stuff'
with open('output.txt', 'w') as f:
    f.write(cap.stdout)
_
15
Amit