Как скачать с ноутбука Jupyter без лишних комментариев - PullRequest
0 голосов
/ 30 октября 2018

Извинения, если это уже было задано, или если решение тривиально просто.

Использование Jupyter Notebook для сценариев Python. Когда я загружаю записную книжку в виде файла .py (нажав Файл-> Загрузить как-> Python (.py) ), Jupyter добавляет несколько посторонних закомментированных строк. Он добавляет некоторый интерпретатор shebang, объявление кодировки в начале, а затем #In[], #Out[] для каждой ячейки и т. Д. Чтобы сделать проблему более сложной, shebang выглядит как

#!/usr/bin/env python

, хотя я использую ядро ​​python3.

Хотя я уверен, что это имеет наилучшие намерения, очень часто я хочу иметь свою собственную директиву интерпретатора и вообще пропустить другие закомментированные строки, так как они ничего не делают, только добавляют в беспорядок.

Как загрузить только необработанные коды, только с комментариями, которые I вставлены, а ячейки разделены ничем иным, как переносом строк? Кроме того, я хотел бы знать постоянное решение для изменения конфигурации, чтобы загрузить его таким образом, для всех файлов ipynb на моем компьютере, а не для одноразовой команды.

Ответы [ 2 ]

0 голосов
/ 02 августа 2019

Поздний ответ, но вы можете напрямую изменить файл python.tpl, который ссылается на шаблон, который Jupyter Notebook использует при создании файла python.

  1. Найдите файл python.tpl. Шахта расположена по адресу: C:\Anaconda3\envs\<my_env_name>\Lib\site-packages\nbconvert\templates, где <my_env_name> - это просто название среды, которую я создал. Я просто выполнил поиск Windows на 'nbconvert\templates', чтобы найти каталог.
  2. Сделайте резервную копию исходного файла python.tpl, скопировав и вставив его куда-нибудь. Я только что создал папку original_templates в том же каталоге выше.
  3. Отредактируйте файл python.tpl (не тот, который вы скопировали для резервного копирования) с вашими желаемыми изменениями в шаблоне. Если вам просто нужны блоки кода без заголовков / комментариев, ниже приведена базовая структура, которую я использовал:
{%- extends 'null.tpl' -%} 
{% block input %} 
{{ cell.source | ipython2python }} 
{% endblock input %}
  1. Сохранить изменения.

Теперь все будущие загрузки в виде файла python в этой среде должны быть просто кодом без дополнительных комментариев.

Для получения дополнительной информации о настройке шаблона попробуйте обратиться к документации nbconvert: https://nbconvert.readthedocs.io/en/latest/customizing.html

Примечание : я отредактировал файл шаблона в среде, поэтому, если я переключаю среды в anaconda, мне также необходимо внести те же изменения в файл шаблона в другой среде.

0 голосов
/ 28 ноября 2018

Вы можете использовать эту команду:

jupyter nbconvert --to python "path/to/notebook.ipynb" \
--TemplateExporter.exclude_markdown=True \
--TemplateExporter.exclude_output_prompt=True \
--TemplateExporter.exclude_input_prompt=True

Будет создан файл Python, содержащий только ваш код Python и без #In[], #Out[]

\ в команде просто для записи команды в несколько строк и может быть удалено.

Постоянная конфигурация

Чтобы сделать эту конфигурацию постоянной:

  1. Создайте файл с именем jupyter_nbconvert_config.py внутри каталога ~/.jupyter/. Создайте каталог, если он не существует.

  2. Запись в файл:

    from nbconvert import TemplateExporter
    TemplateExporter.exclude_markdown=True 
    TemplateExporter.exclude_output_prompt=True
    TemplateExporter.exclude_input_prompt=True
    
  3. Теперь вы можете запустить команду:

    jupyter nbconvert --to python "path/to/notebook.ipynb"
    

    чтобы получить файл Python только с кодом.

Источники: 1 2

...