Как загрузить/отредактировать/запустить/сохранить текстовые файлы (.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 в ячейку, и вы вернете содержимое файла, которое затем можно вставить в ячейку в качестве кода.