Recentemente, mudei para o uso de notebooks IPython como parte do meu fluxo de trabalho. No entanto, não consegui encontrar uma maneira de importar arquivos .py para as células individuais de um bloco de notas aberto do IPython, para que eles possam editar, executar e salvar. Isso pode ser feito?
Encontrei isso na documentação que me diz como importar arquivos .py como novos blocos de anotações, mas isso fica aquém do que eu quero alcançar.
Qualquer sugestão será muito bem-vinda.
python
jupyter-notebook
ipython
jupyter
aaronsstack
fonte
fonte
Respostas:
Um arquivo de texto pode ser carregado em uma célula do notebook com o comando magic
%load
.Se você executar uma célula contendo:
o conteúdo de
filename.py
será carregado na próxima célula. Você pode editar e executá-lo como de costume.Para salvar o conteúdo da célula novamente em um arquivo, adicione a magia da célula
%%writefile filename.py
no início da célula e execute-a. Cuidado, se um arquivo com o mesmo nome já existir , será substituído silenciosamente .Para ver a ajuda de qualquer comando mágico, adicione a
?
: like%load?
ou%%writefile?
.Para obter ajuda geral sobre funções mágicas, digite "% magic". Para obter uma lista das funções mágicas disponíveis, use% lsmagic. Para obter uma descrição de qualquer um deles, digite% magic_name ?, por exemplo, '% cd?'.
Veja também: Funções mágicas dos documentos oficiais do IPython.
fonte
%save -f
parece ser o caminho para fazer o que eu estava procurando. Obrigado!save -f
é uma forma indireta de salvar em um arquivo e funcionará apenas se você executar a célula primeiro e depois fornecer a referência correta. Em geral, é mais fácil usar%%writefile
que grava a célula atual em um arquivo. Eu atualizei a resposta para mencionar isso.%loadpy
(em vez de%load
).%load
é bom, daqui para frente: "%loadpy
( Alias de%load
) -%loadpy
ganhou alguma flexibilidade e diminuiu o requisito de uma.py
extensão. Por isso, foi renomeado simplesmente para%load
Você pode consultar a%load
documentação para obter mais informações. "Para escrever / salvar
%%writefile myfile.py
-a
para acrescentar). Outro apelido:%%file myfile.py
Para correr
%run myfile.py
Para carregar / importar
%load myfile.py
Para mais magia e ajuda
%lsmagic
%COMMAND-NAME?
%run?
Nota
Além dos comandos mágicos da célula, o notebook IPython (agora notebook Jupyter) é tão legal que permite que você use qualquer comando unix diretamente da célula (isso também é equivalente ao uso do
%%bash
comando magic cell).Para executar um comando unix a partir da célula, basta preceder seu comando com
!
mark. por exemplo:!python --version
veja sua versão do python!python myfile.py
execute myfile.py e produz resultados na célula atual, da mesma forma%run
(veja a diferença entre!python
e%run
nos comentários abaixo).Além disso, consulte este nbviewer para obter mais explicações com exemplos. Espero que isto ajude.
fonte
!dir Volume in drive D is Documents
etc ... Portanto, não é apenas bash, mas cmd também!!python --version
(erro de digitação)%run myfile.py
em oposição a!python myfile.py
. Se você fizer o primeiro, ele será executado usando o kernel do ipython, incluindo qualquer pré-carregamento configurado. Um pequeno problema, mas hoje encontrei um bug em que fazia diferença para mim.%run myfile.py
descrito nesta resposta ao incluir comandos mágicos de célula IPython em seu script, use%run myfile.ipy
.Arraste e solte um arquivo Python na tabela "home" de notebooks Ipython e clique em fazer upload. Isso criará um novo notebook com apenas uma célula contendo o conteúdo do arquivo .py
Caso contrário, copie / cole do seu editor favorito;)
fonte
Eu achei satisfatório usar ls e cd no ipython notebook para encontrar o arquivo. Em seguida, digite cat your_file_name na célula e você receberá de volta o conteúdo do arquivo, que poderá ser colado na célula como código.
fonte
!cat "file.txt"