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:
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.
From within a console session you can save, using %save some or all of your work to one or more python files that you can then paste, import, etc, into notebook cells. You can also save using %save -r to .
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)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With