我正在考虑使用*.ipynb文件作为事实的来源,并以编程方式将它们‘编译’成.py文件,用于计划的作业/任务。
据我所知,要做到这一点,唯一的方法是通过GUI。有没有办法通过命令行做到这一点?
发布于 2013-11-05 07:24:57
如果您不想每次保存时都输出Python脚本,或者不想重新启动IPython内核:
在命令行上,可以使用nbconvert
$ jupyter nbconvert --to script [YOUR_NOTEBOOK].ipynb
作为一个小技巧,您甚至可以通过预先挂起的!
(用于任何命令行参数)在 an IPython notebook中调用上面的命令。在笔记本中:
!jupyter nbconvert --to script config_template.ipynb
在--to script
成为added之前,选择是--to python
或--to=python
,但在迈向语言不可知的笔记本系统的过程中,选择是renamed。
发布于 2018-04-22 19:36:46
如果您想将当前目录下的所有*.ipynb
文件转换为python脚本,可以执行如下命令:
jupyter nbconvert --to script *.ipynb
发布于 2015-06-11 17:10:21
这里有一个快速而粗糙的方法,可以在不使用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()
https://stackoverflow.com/questions/17077494
复制相似问题