35

我希望能够将 iPython 笔记本单元的 TEXT 输出保存到磁盘上的文件中。

我有 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 变量中。

4

2 回答 2

35

你有一个错字,dcap.stout. 应该是cap.stdout 我测试了以下,它工作正常。cap.show()还打印了“东西”并重新运行单元格覆盖了文件。

%%capture cap --no-stderr
print 'stuff'
with open('output.txt', 'w') as f:
    f.write(cap.stdout)
于 2015-01-16T23:23:04.133 回答
1
%%capture cap --no-stderr
print("a")
with open('output.txt', 'w') as f:
    f.write(str(cap))
于 2021-02-02T06:45:52.193 回答