9
$\begingroup$

I'm currently working/prototyping into a Jupyter notebook. I want to run some of my code on a standalone iPython shell.

For now, I export my iPython code (file --> download as) and then execute it in my iPython (with %run). It works, but I would like to export only one cell or set of cells. So, that I can run only what I modified in my Jupyter notebook.

$\endgroup$
  • $\begingroup$ I am not sure whether it would make sense as in jupyter notebook, kernel maintains the state of previously run commands which might not be the case with ipython %run command. $\endgroup$ – Rohan Sadale Aug 25 '16 at 20:20
  • 3
    $\begingroup$ For a single cell you could simply copy and paste or use IPython magics: 1) %%writefile, see stackoverflow.com/questions/21034373/… or 2) %save, see stackoverflow.com/questions/947810/… command. $\endgroup$ – Valentas Aug 26 '16 at 7:08
  • 1
    $\begingroup$ @RohanSadale what I want is to work both in my jupyter notebook and in my ipython shell. my notebook is made to be shared and when I want to make the command previously run on my notebook but with a bigger dataset and test some stuff on it, I made it on my ipython shell. $\endgroup$ – Manu H Aug 26 '16 at 8:10
  • $\begingroup$ @Valentas your comment should be rewritten as an answer. $\endgroup$ – Manu H Aug 26 '16 at 8:11
  • $\begingroup$ See related question: stackoverflow.com/questions/27952428/… $\endgroup$ – Pierz Apr 2 '19 at 21:29
4
$\begingroup$

See this stack question

You can use %%capture Jupyter notebook' magic command to catch output of cell and then paste it to your text file with

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

if you want to cell code to specific file for example code.txt you can use magic function %%writefile

%%writefile example.txt
ab = 'This is code'
a = 5
print(a+ 2)

Also if you want to append to file you must use -a parameter

$\endgroup$
  • $\begingroup$ I think you misunderstand the question. What I want to export is not the result of a cell but the code I wrote into that cell. $\endgroup$ – Manu H May 10 '18 at 8:13
  • $\begingroup$ ipython.readthedocs.io/en/stable/interactive/magics.html Then you can use %%writefile magic function $\endgroup$ – R__A_a_ May 11 '18 at 10:43
1
$\begingroup$

I am not sure if it is possible to export only one cell in Jupyter notebooks.

But I do know that you could download as a python file and simply copy paste the particular cell you want in your new Jupyter notebook.

Let me know if you need any more help!

$\endgroup$
0
$\begingroup$

One way this can be done is to use Python's output caching system to access the output of a cell so it can be saved off to a file. The output from a numbered cell x is stored in a variable named _x, and output from the last command is in _ etc. e.g. Save the output of cell number 10 to a file cell_10.pickle using python's pickle format:

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.