Как экспортировать одну ячейку ноутбука Jupyter?

10

В настоящее время я работаю / создаю прототип в ноутбуке Jupyter . Я хочу запустить часть своего кода в отдельной оболочке iPython .

Сейчас я экспортирую свой код iPython (file -> download as), а затем выполняю его на своем iPython (с% run). Это работает, но я хотел бы экспортировать только одну ячейку или набор ячеек. Таким образом, я могу запускать только то, что изменил в своем ноутбуке Jupyter .

Ману Н
источник
Я не уверен, имеет ли это смысл, как в ноутбуке jupyter, ядро ​​поддерживает состояние ранее запущенных команд, что может быть не так с командой ipython% run.
Рохан Садале
3
Для одной ячейки можно просто скопировать и вставить или использовать IPython: 1 магию) %% WriteFile, см stackoverflow.com/questions/21034373/... или 2)% СОХРАНИТЬ см stackoverflow.com/questions/947810/... команды.
Валентина
1
@ RohanSadale я хочу работать как в своей записной книжке jupyter, так и в моей оболочке ipython. моя записная книжка предназначена для общего доступа, и когда я хочу, чтобы команда ранее выполнялась на моей записной книжке, но с большим набором данных и тестированием некоторых вещей, я сделал это на своей оболочке ipython.
Ману Х
@Valentas ваш комментарий должен быть переписан как ответ.
Ману Х
См родственный вопрос: stackoverflow.com/questions/27952428/...
Пирз

Ответы:

4

Смотрите этот вопрос стека

Вы можете использовать %% capture волшебную команду Jupyter notebook, чтобы перехватить вывод ячейки, а затем вставить его в текстовый файл с помощью

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

если вы хотите поместить код в определенный файл, например, code.txt, вы можете использовать магическую функцию %% writefile

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

Также, если вы хотите добавить в файл, вы должны использовать параметр -a

R__A_a_
источник
Я думаю, что вы неправильно поняли вопрос. То, что я хочу экспортировать, - это не результат ячейки, а код, который я написал в эту ячейку.
Ману Х
ipython.readthedocs.io/en/stable/interactive/magics.html Затем вы можете использовать магическую функцию %% writefile
R__A_a_
1

Я не уверен, что в ноутбуках Jupyter можно экспортировать только одну ячейку .

Но я знаю, что вы можете загрузить файл Python и просто скопировать и вставить нужную ячейку в свой новый блокнот Jupyter .

Дайте мне знать, если вам нужна дополнительная помощь!

Чейз Крегор
источник
0

Один из способов сделать это - использовать систему кэширования вывода Python для доступа к выводу ячейки, чтобы ее можно было сохранить в файл. Вывод из пронумерованной ячейки x сохраняется в переменной с именем _x, а вывод из последней команды - в _и т. Д. Например, сохраните вывод ячейки с номером 10 в файл, cell_10.pickleиспользуя формат Python Pickle:

import pickle
with open('cell_10.pickle', 'wb') as f:
    pickle.dump(_10, f, pickle.HIGHEST_PROTOCOL)
Пирз
источник