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.