Как загрузить / отредактировать / запустить / сохранить текстовые файлы (.py) в ячейку блокнота IPython?

Недавно я перешел на использование ноутбуков IPython как часть моего рабочего процесса. Однако мне не удалось найти способ импорта файлов.py в отдельные ячейки открытой записной книжки IPython, чтобы их можно было редактировать, запускать и затем сохранять. Можно ли это сделать?

Я нашел это в документации, в которой рассказывается, как импортировать файлы.py в качестве новых записных книжек, но это не соответствует тому, чего я хочу достичь.

Любые предложения будут высоко ценится.

6 ответов

Решение

РЕДАКТИРОВАТЬ: Начиная с IPython 3 (сейчас проект Jupyter), ноутбук имеет текстовый редактор, который можно использовать как более удобную альтернативу для загрузки / редактирования / сохранения текстовых файлов.

Текстовый файл может быть загружен в ячейку ноутбука с помощью волшебной команды %load,

Если вы выполните ячейку, содержащую:

%load filename.py

содержание filename.py будет загружен в следующую ячейку. Вы можете редактировать и выполнять его как обычно.

Чтобы сохранить содержимое ячейки обратно в файл, добавьте магию ячейки. %%writefile filename.py в начале ячейки и запустить его. Помните, что если файл с таким именем уже существует, он будет перезаписан без уведомления.

Чтобы увидеть помощь для любой магической команды, добавьте ?: лайк %load? или же %%writefile?,

Для общей справки по магическим функциям наберите "%magic". Для получения списка доступных магических функций используйте%lsmagic. Для описания любого из них введите%magic_name?, например, "%cd?".

Смотрите также: Волшебные функции из официальных документов IPython.

Написать / сохранить

%%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 прямо из ячейки (это также эквивалентно использованию %%bash команда клеточной магии).

Чтобы запустить команду unix из ячейки, просто перед командой введите ! отметка. например:

  • !python --version увидеть вашу версию Python
  • !python myfile.py запустите myfile.py и выведите результаты в текущую ячейку, как %run (увидеть разницу между !python а также %run в комментариях ниже).

Также смотрите этот nbviewer для дальнейшего объяснения с примерами. Надеюсь это поможет.

Перетащите файл Python в таблицу "домашних" блокнотов Ipython, нажмите "Загрузить". Это создаст новую записную книжку с одной ячейкой, содержащей содержимое файла.py.

Остальное скопируйте / вставьте из вашего любимого редактора;)

Я нашел удовлетворительным использование ls и cd в блокноте ipython для поиска файла. Затем введите cat your_file_name в ячейку, и вы вернете содержимое файла, которое затем сможете вставить в ячейку в виде кода.

Я не нашел удовлетворительного ответа на этот вопрос, например, как загрузить редактирование, запустить и сохранить. Перезапись либо с помощью %%writefileили же %save -fне работает, если вы хотите показать добавочные изменения в git. Это будет выглядеть так, как будто вы удалили все строки в filename.pyи добавьте все новые строки, даже если вы просто редактируете 1 строку.

для записи в файл, который существует или не использовать следующие

      %%writefile script2.py
print(4+5) 
print(5+5)

для добавления к файлу используйте -a аргумент

      %%writefile -a script2.py
print("hello")

когда вы загружаете файл

      %load script2.py
print(4+5)
print(5+5
print("hello")
Другие вопросы по тегам