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