在iPython笔记本中保存单元格的输出?

时间:2018-03-08 15:31:56

标签: save jupyter-notebook capture

我在[16]的单元格中有一个python循环,它在每个循环中调用一个函数,该函数打印一串字符串。 由于迭代次数很多(笔记本文件达到99+ MB),我需要输出那些不在jupyter文件中但不是txt或csv文件的字符串。 我已经阅读了这里提到的答案: how to save the output of a cell in iPython notebook?

但是,如果我使用该代码,我会收到粉红色的以下错误消息:

错误:root:找不到行魔术函数%capture(但是单元格魔法%%capture存在,你的意思是吗?)。

并最终还出现此错误消息: NameError:name' cap'未定义

所以只是举个例子。我们说我有:

def test(i):
    print(i)


for i in range(1,10):
    test(i)

如何在txt文件而不是笔记本中导出/打印1到10的值? 老实说,我不是蟒蛇专家,所以非常感谢你的帮助。

1 个答案:

答案 0 :(得分:1)

enter image description here

你的功能在第一个单元格中打印... 然后在你的第二个单元格中:

%%capture cap --no-stderr
for i in range(1,5):
test(i)

在第三个单元格中:

with open('output.txt', 'w') as f:
     f.write(cap.stdout)