Как загрузить/отредактировать/запустить/сохранить текстовые файлы (.py) в ячейку ноутбука IPython?
Недавно я перешел на использование ноутбуков IPython в рамках моего рабочего процесса. Однако мне не удалось найти способ импортировать .py файлы в отдельные ячейки открытого IPython-ноутбука, чтобы они могли редактировать, запускать и затем сохранять. Это можно сделать?
Я нашел этот в документации, которая рассказывает мне, как импортировать файлы .py в качестве новых ноутбуков, но это не соответствует тому, что я хочу достичь.
Любые предложения будут высоко оценены,
спасибо заранее.
Ответы
Ответ 1
Текстовый файл может быть загружен в ячейку ноутбука магической командой %load
.
Если вы выполните ячейку, содержащую:
%load filename.py
содержимое filename.py
будет загружено в следующую ячейку. Вы можете редактировать и выполнять его, как обычно.
Чтобы сохранить содержимое ячейки в файл, добавьте cell-magic %%writefile filename.py
в начале ячейки и запустите ее. Помните, что если файл с тем же именем уже существует , он будет перезагружен без изменений.
Чтобы увидеть справку для любой магической команды, добавьте ?
: например, %load?
или %%writefile?
.
Для общей помощи по магическим функциям типа "% magic"
Для получения списка доступных магических функций используйте% lsmagic. Для описания
любого из них, введите% magic_name?, например. '% Кд?'.
Смотрите также: Магические функции из официальных документов IPython.
EDIT. Начиная с IPython 3 (теперь проект Jupyter), у ноутбука есть текстовый редактор, который можно использовать в качестве более удобной альтернативы для загрузки/редактирования/сохранения текстовых файлов.
Ответ 2
Чтобы записать/сохранить
%%writefile myfile.py
- записать/сохранить содержимое ячейки в myfile.py(использовать
-a
для добавления). Другой псевдоним: %%file myfile.py
Для запуска
%run myfile.py
- запустите myfile.py и выведите результаты в текущей ячейке
Чтобы загрузить/импортировать
%load myfile.py
- загрузить "import" myfile.py в текущую ячейку
Для большей магии и помощи
%lsmagic
- перечислить все остальные команды классной ячейки.
%COMMAND-NAME?
- для получения справки о том, как использовать определенную команду. т.е.
%run?
Примечание
Помимо команд сотовой ячейки, IPython-ноутбук (теперь ноутбук Jupyter) настолько крут, что позволяет вам использовать любую команду unix прямо из ячейки (это также эквивалентно использованию команды cell %%bash
).
Чтобы запустить команду unix из ячейки, просто представьте свою команду знаком !
. например:
-
!python --version
см. версию python
-
!python myfile.py
запустите myfile.py и выведите результаты в текущей ячейке, как и %run
(см. разницу между !python
и %run
в комментариях ниже).
Также см. этот nbviewer для дальнейшего объяснения примерами.
Надеюсь, это поможет.
Ответ 3
Перетащите файл Python в таблицу ноутбуков "домашних" ноутбуков Ipython, нажмите "Загрузить". Это создаст новый ноутбук с одной ячейкой, содержащей ваш .py файл.
Остальная копия/вставка из вашего любимого редактора;)
Ответ 4
Я нашел удовлетворительным использование ls и cd в ноутбуке ipython для поиска файла. Затем введите cat your_file_name в ячейку, и вы вернете содержимое файла, которое затем можно вставить в ячейку в качестве кода.