input()
(Python 3) и raw_input()
(Python 2) всегда возвращают строки. Преобразуйте результат в целое число с помощью int()
.
x = int(input("Enter a number: "))
y = int(input("Enter a number: "))
Pro tip: в Python не нужны полуколоны.
Начальный блокнот с флагом --script
сохранит файл .py
рядом с .ipynb
при каждом сохранении. Посмотрите на github / ipython / nbconvert , который в настоящее время сливается с самим IPython, поэтому не ожидайте точности документа и nbconvert, чтобы работать из коробки, не работая немного. (./nbconvert & lt; format & gt; & lt; file.ipynb & gt;) во время этой записи, & lt; format & gt; в [python, latex, markdown, full_html, ...])
Вы также можете (как ipynb is json), загрузить его, пропустить его и eval
кодеку в текущем пространстве имен. Вы найдете пример здесь и там в Интернете или IPython wiki на github.
Этот ответ слишком стар, см. Ниже ответ @williampli.
@ Последняя строка кода Spawnrider,
fh.writelines(source.encode('utf-8'))
дает 'TypeError: write () аргумент должен быть str, а не int'
fh.writelines(source)
работает.
Если вы хотите преобразовать все *.ipynb
файлы из текущего каталога в сценарий python, вы можете запустить команду следующим образом:
jupyter nbconvert --to script *.ipynb
Для преобразования всех файлов формата * .ipynb в текущий каталог в сценарии python рекурсивно:
for i in *.ipynb **/*.ipynb; do
echo "$i"
jupyter nbconvert "$i" "$i"
done
--to script
, чтобы избежать вывода HTML по умолчанию в Jupiter 4.4.0.
– trojjer
21 November 2017 в 14:51
Если вы не хотите выводить скрипт Python при каждом сохранении или не хотите перезапускать ядро IPython:
В командной строке вы можете использовать nbconvert
:
$ jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb
Как бит взлома, вы можете даже вызвать приведенную выше команду в записной книжке IPython с предварительным ожиданием !
( используется для любого аргумента командной строки). В записной книжке:
!jupyter nbconvert --to script config_template.ipynb
До --to script
добавлено , опция была --to python
или --to=python
, но она была переименована в движении к языковой системе с автономным ноутбуком.
jupyter
вы можете запускать nbconvert
с помощью до или после перехвата: ContentsManager.pre_save_hook
abd FileContentsManager.post_save_hook
. Вы добавили бы пост-save hook jupyter nbconvert --to script [notebook]
– jaimedash
3 May 2016 в 16:35
jupyter nbconvert --to script /path/to/notebooks/*.ipynb
– openwonk
22 July 2017 в 00:00
!jupyter nbconvert --to python 'jupi_demo.ipynb' --stdout --TemplateExporter.exclude_markdown=True
на Jupyter 4.1.0, но он жалуется Config option exclude_markdown not recognized by PythonExporter.
– Some Noob Student
20 September 2017 в 01:42
# In[ ]:
в сценарии, я хочу, чтобы он был чистым. Есть ли способ сделать это?
– Rishabh Agrahari
31 January 2018 в 11:48
Следуя предыдущему примеру, но с новой версией nbformat lib:
import nbformat
from nbconvert import PythonExporter
def convertNotebook(notebookPath, modulePath):
with open(notebookPath) as fh:
nb = nbformat.reads(fh.read(), nbformat.NO_CONVERT)
exporter = PythonExporter()
source, meta = exporter.from_notebook_node(nb)
with open(modulePath, 'w+') as fh:
fh.writelines(source.encode('utf-8'))
Вот быстрый и грязный способ извлечь код из V3 или V4 ipynb без использования ipython. Он не проверяет типы ячеек и т. Д.
import sys,json
f = open(sys.argv[1], 'r') #input.ipynb
j = json.load(f)
of = open(sys.argv[2], 'w') #output.py
if j["nbformat"] >=4:
for i,cell in enumerate(j["cells"]):
of.write("#cell "+str(i)+"\n")
for line in cell["source"]:
of.write(line)
of.write('\n\n')
else:
for i,cell in enumerate(j["worksheets"][0]["cells"]):
of.write("#cell "+str(i)+"\n")
for line in cell["input"]:
of.write(line)
of.write('\n\n')
of.close()
Вы можете сделать это из API IPython.
from IPython.nbformat import current as nbformat
from IPython.nbconvert import PythonExporter
filepath = 'path/to/my_notebook.ipynb'
export_path = 'path/to/my_notebook.py'
with open(filepath) as fh:
nb = nbformat.reads_json(fh.read())
exporter = PythonExporter()
# source is a tuple of python source code
# meta contains metadata
source, meta = exporter.from_notebook_node(nb)
with open(export_path, 'w+') as fh:
fh.writelines(source)
--script
является неудовлетворительным . Ответ williampli , основанный на Jupyter's (поддерживается)nbconvert
, кажется предпочтительным. – duozmo 8 December 2015 в 23:33