how to save the output of a cell in iPython notebook?

爷,独闯天下 提交于 2019-12-29 04:36:28

问题


I would like to be able to save the TEXT output of an iPython notebook cell into a file on disk.

I have 2 additional requirements/requests:

  • be able to re-run the cell and overwrite my output with whatever the latest is.
  • also display the output within the notebook.

I have figured out how to use the %%capture magic for some basic saving of an iPython notebook's cell into a file, but it does not seem flexible enough: it keeps appending every time I re-run the cell and I cannot get it to display within the same cell.

Here is what I have so far:

%%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 

When I try to put cap.show() after the write, it does not seem to display. Instead, it puts the output into the cap variable twice.


回答1:


You have a typo, missing d in cap.stout. It should be cap.stdout I tested the following and it worked fine. cap.show() also printed "stuff" and re-running the cell overwrote the file.

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


来源:https://stackoverflow.com/questions/27994137/how-to-save-the-output-of-a-cell-in-ipython-notebook

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!