Como exportar uma célula de um notebook jupyter?

10

Atualmente, estou trabalhando / prototipando em um notebook Jupyter . Quero executar parte do meu código em um shell iPython autônomo .

Por enquanto, exporto meu código iPython (arquivo -> faça o download como) e depois o executo no meu iPython (com% de execução). Funciona, mas eu gostaria de exportar apenas uma célula ou conjunto de células. Então, para que eu possa executar apenas o que eu modifiquei na minha Jupyter notebook.

Manu H
fonte
Não sei se faria sentido, como no notebook jupyter, o kernel mantém o estado dos comandos executados anteriormente, o que pode não ser o caso do comando ipython% run.
Rohan Sadale
3
Para uma única célula, você pode simplesmente copiar e colar ou usar o IPython magics: 1) %% writefile, consulte stackoverflow.com/questions/21034373/… ou 2)% save, consulte o comando stackoverflow.com/questions/947810/… .
Valentas 26/08/16
11
@ RohanSadale o que eu quero é trabalhar tanto no meu notebook jupyter quanto no meu shell ipython. meu notebook foi criado para ser compartilhado e quando eu quero executar o comando anteriormente no meu notebook, mas com um conjunto de dados maior e testar algumas coisas, eu o fiz no meu shell ipython.
Manu H
@Valentas, seu comentário deve ser reescrito como resposta.
Manu H
Ver questão relacionada: stackoverflow.com/questions/27952428/...
Pierz

Respostas:

4

Veja esta questão da pilha

Você pode usar o comando mágico %% capture Jupyter notebook 'para capturar a saída da célula e colá-la no seu arquivo de texto com

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

se você deseja codificar o código de célula para um arquivo específico, por exemplo, code.txt, pode usar a função mágica %% writefile

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

Além disso, se você deseja anexar ao arquivo, deve usar o parâmetro -a

R__A_a_
fonte
Eu acho que você não entendeu a pergunta. O que eu quero exportar não é o resultado de uma célula, mas o código que escrevi nessa célula.
Manu H
ipython.readthedocs.io/en/stable/interactive/magics.html Então você pode usar %% writefile função mágica
R__A_a_
1

Não tenho certeza se é possível exportar apenas uma célula nos blocos de anotações Jupyter .

Mas eu sei que você pode fazer o download como um arquivo python e simplesmente copiar e colar a célula específica que deseja no seu novo notebook Jupyter .

Entre em contato se precisar de mais ajuda!

Chase Kregor
fonte
0

Uma maneira de fazer isso é usar o sistema de cache de saída do Python para acessar a saída de uma célula para que possa ser salva em um arquivo. A saída de uma célula numerada x é armazenada em uma variável chamada _xe a saída do último comando está em _etc. Por exemplo, salve a saída da célula número 10 em um arquivo cell_10.pickleusando o formato pickle do python:

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
Pierz
fonte