Jupyter notebook 文件对于数据科学代码执行和富文本报告的输出比较友好(兼容markdown文档,且代码块的结构形式);但是ipynb文件并非标准的脚本文件,对于挂载定时自动化任务不太方便;还好有
nbconvert
包的支持,可操做ipynb
文件的执行和转化 ,因此本文纪录如何挂载ipynb定时报告的执行和转化html及报告的推送。
参考:nbconvert官方文档
Python3 版本
jupyter notebook
nbconvert 包
测试相关环境时候是否准备好?
后台输入以下命令:
jupyter nbconvert
如果出现以下提示,则说明环境已满足
--execute
是执行ipynb代码的命令;Untitled.ipynb
为所被执行的文件;ExecutePreprocessor.kernel_name=python3
指定选择的python内核
jupyter nbconvert --execute --to notebook --inplace Untitled.ipynb --ExecutePreprocessor.kernel_name=python3
html文件可以在没有notebook环境的状态下通过浏览器打开查看,因此在报告输出时方便用户查看,转化为html格式的效果兼容性较好。
-- to html
是转化为html格式的命令
jupyter nbconvert --to html Untitled.ipynb # 转化为 html
注:ipynb支持转化的文件格式较多(包含如下,转化方式详见官方文档)
- HTML,
- LaTeX,
- PDF,
- WebPDF,
- Reveal.js HTML slideshow,
- Markdown,
- Ascii,
- reStructuredText,
- executable script,
- notebook.
注意:目前还不支持转化为图片,题主的处理方法是通过Selenium+PhantomJS
读取html文件,保存成图片的形式实现
输出的报告,一般为了美观需要隐藏掉python代码,而只展示输出的结果,因此需要隐藏代码,只需保留对应的结果。
在notbook文件末尾添加如下python代码可隐藏整个notebook的python脚本:
from IPython.display import HTML
quote ="""
"""
HTML(quote)
注 : ('div.input').hide()
中hide()
是隐藏全部代码;改为show()
可显示全部代码
display:none
中none
是不显示代码块号;改为show
可显示全部代码块号
如果要显示上面这个代码命令,选中改代码块,转化为Markown后可显示出来
方法1:可以采用钉钉机器人自动化推送
方法2:可以采用邮件的形式直接推送相关文件