* .ipynb 파일을 진실의 원천으로 사용하고 계획된 작업 / 작업을 위해 프로그래밍 방식으로 .py 파일로 ‘컴파일’합니다.
내가 이것을 이해하는 유일한 방법은 GUI를 통하는 것입니다. 커맨드 라인을 통해 할 수있는 방법이 있습니까?
답변
저장할 때마다 Python 스크립트를 출력하지 않거나 IPython 커널을 다시 시작하지 않으려는 경우 :
온 커맨드 라인 , 당신은 사용할 수 있습니다 nbconvert
:
$ jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb
약간의 해킹으로, IPython 노트북 에서 (명령 줄 인수에 사용 되는) 미리 대기 하여 위 명령 을 호출 할 수도 있습니다!
. 노트북 내부 :
!jupyter nbconvert --to script config_template.ipynb
이전 --to script
에 추가 된 옵션은 --to python
또는 --to=python
이지만 언어에 구애받지 않는 노트북 시스템으로 이동하면서 이름 이 바뀌 었 습니다.
답변
*.ipynb
현재 디렉토리의 모든 파일을 파이썬 스크립트 로 변환 하려면 다음과 같이 명령을 실행할 수 있습니다.
jupyter nbconvert --to script *.ipynb
답변
다음은 ipython을 사용하지 않고 V3 또는 V4 ipynb에서 코드를 추출하는 빠르고 더러운 방법입니다. 셀 유형 등을 확인하지 않습니다.
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()
답변
이전 예제를 따르지만 새로운 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'))
답변
IPython API에서이를 수행 할 수 있습니다.
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)
답변
Jupytext 는 이러한 변환을 위해 툴체인에 포함되어 있습니다. 노트북에서 스크립트로 변환 할 수있을뿐만 아니라 스크립트에서 노트북으로 다시 돌아갈 수도 있습니다. 심지어 그 노트북이 실행 된 형태로 생산되도록했습니다.
jupytext --to py notebook.ipynb # convert notebook.ipynb to a .py file
jupytext --to notebook notebook.py # convert notebook.py to an .ipynb file with no outputs
jupytext --to notebook --execute notebook.py # convert notebook.py to an .ipynb file and run it
답변
현재 디렉토리의 모든 * .ipynb 형식 파일을 파이썬 스크립트로 재귀 적으로 변환하려면 다음을 수행하십시오.
for i in *.ipynb **/*.ipynb; do
echo "$i"
jupyter nbconvert "$i" "$i"
done