Командная строка: преобразование IPython Notebook в Python

Пройдите тест, узнайте какой профессии подходите

Я предпочитаю
0%
Работать самостоятельно и не зависеть от других
Работать в команде и рассчитывать на помощь коллег
Организовывать и контролировать процесс работы

Быстрый ответ

Для трансформации IPython Notebook в Python-файл воспользуйтесь следующей командой:

Bash
Скопировать код
jupyter nbconvert --to python <YourNotebook>.ipynb

В результате выполнения этой команды будет сгенерирован файл <YourNotebook>.py, содержащий исполняемый код из вашего ноутбука.

Кинга Идем в IT: пошаговый план для смены профессии

Дополнительные возможности

Пакетное преобразование

Если нужно преобразовать несколько файлов одновременно, используйте маску *.ipynb:

Bash
Скопировать код
jupyter nbconvert --to script *.ipynb

Такая команда трансформирует все ноутбуки содержащиеся в текущей директории в Python-скрипты.

Выполнение команды внутри ноутбука

Вы можете запустить конвертацию непосредственно из IPython Notebook:

Python
Скопировать код
!jupyter nbconvert --to script <YourNotebook>.ipynb

Благодаря этому не придется тратить время на переключение между различными интерфейсами.

Упрощение команд

Чтобы упростить процесс конвертации, можно создать отдельный скрипт:

Bash
Скопировать код
echo '#!/bin/bash' > convert_notebooks.sh
echo 'jupyter nbconvert --to script "$@"' >> convert_notebooks.sh
chmod +x convert_notebooks.sh
./convert_notebooks.sh <YourNotebook>.ipynb

Для удобства конвертации файлов используйте convert_notebooks.sh.

Двусторонняя конвертация с Jupytext

Jupytext позволяет выполнить конвертацию файлов между форматами .ipynb и .py:

Bash
Скопировать код
jupytext --to py notebook.ipynb

После выполнения этой команды будет создан Python-файл, основанный на вашем ноутбуке.

Подробности

Разбор командной строки

Опция --to script выполняет конвертацию. Это более современный вариант команды, чем --to python.

Предварительное использование

Вы можете применять API nbconvert непосредственно в коде Python:

Python
Скопировать код
from nbconvert import PythonExporter
import nbformat

notebook_filename = '<YourNotebook>.ipynb'
with open(notebook_filename) as fh:
    nb = nbformat.reads(fh.read(), as_version=4)
exporter = PythonExporter()
source, meta = exporter.from_notebook_node(nb)
with open('<YourScript>.py', 'w+') as fh:
    fh.writelines(source)

Этот код трансформирует ваш ноутбук в скрипт.

Выполнение скрипта с Jupytext

С Jupytext вы можете из Python-скрипта воссоздать Jupyter Notebook и запустить его:

Bash
Скопировать код
jupytext --to notebook --execute <YourNotebook>.py

Таким образом, ваш код станет интерактивным.

Визуализация

Процесс преобразования визуально можно представить следующим образом:

Markdown
Скопировать код
📗IPython Notebook: [🔬 Анализ данных, 💻 Программирование, 📑 Документация, 💭 Обмен идеями]
Преобразование:
📗 -> jupyter nbconvert --to script <YourNotebook>.ipynb
Результат:
🗒️Python-файл: [📝 Анализ данных, 📝 Программирование, 📝 Документация, 📝 Обмен идеями]

Это позволяет перевести интерактивный документ в исполняемый код.

Продвинутое использование

Вопросы совместимости

Необходимо учитывать совместимость различных версий nbformat.

Автоматизация без графического интерфейса

Скрипты упрощают задачу автоматизации на серверах или в Docker-контейнерах, где не доступен графический интерфейс.

Планирование задач

Скрипты можно использовать для запуска задач через Cron и другие системы автоматизации.

Полное преобразование

Для избежания ошибок при ручном использовании, применяйте специализированные инструменты вместо парсинга JSON.

Полезные материалы

  1. Использование как инструмента командной строки — документация nbconvert 7.16.0 — подробное руководство по конвертации Jupyter-ноутбуков с помощью nbconvert.
  2. python – Как запустить .ipynb Jupyter Notebook из терминала? – Stack Overflow — обсуждение вопросов запуска и трансформации ноутбуков через командную строку на форуме Stack Overflow.
  3. GitHub – jupyter/nbconvert: Конвертация Jupyter Notebook — официальный репозиторий nbconvert на GitHub с примерами и документацией.
  4. Встроенные магические команды — документация IPython 8.21.0 — более детальная информация о магических командах IPython, включая %save для экспорта кода из ноутбуков.
  5. Проекты — документация Jupyter 4.1.1 alpha — обзор проектов и инструментов Jupyter, полезных для конвертации ноутбуков.