ipynb文件报告自动化执行推送

ipynb文件报告自动化执行推送

Jupyter notebook 文件对于数据科学代码执行和富文本报告的输出比较友好(兼容markdown文档,且代码块的结构形式);但是ipynb文件并非标准的脚本文件,对于挂载定时自动化任务不太方便;还好有nbconvert包的支持,可操做ipynb文件的执行和转化 ,因此本文纪录如何挂载ipynb定时报告的执行和转化html及报告的推送。

参考:nbconvert官方文档

1、环境要求:

Python3 版本

jupyter notebook

nbconvert 包

测试相关环境时候是否准备好?

后台输入以下命令:

jupyter nbconvert

如果出现以下提示,则说明环境已满足

image

2、ipynb文件的执行

--execute是执行ipynb代码的命令;Untitled.ipynb为所被执行的文件;ExecutePreprocessor.kernel_name=python3指定选择的python内核

jupyter nbconvert --execute --to notebook --inplace Untitled.ipynb --ExecutePreprocessor.kernel_name=python3 

3、notebook文件转化为html

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文件,保存成图片的形式实现

4、jupyter notebook的代码隐藏和显示

输出的报告,一般为了美观需要隐藏掉python代码,而只展示输出的结果,因此需要隐藏代码,只需保留对应的结果。

在notbook文件末尾添加如下python代码可隐藏整个notebook的python脚本:

from IPython.display import HTML
quote ="""

        """ 
HTML(quote)

注 : ('div.input').hide()hide()是隐藏全部代码;改为show()可显示全部代码

display:nonenone是不显示代码块号;改为show可显示全部代码块号

​ 如果要显示上面这个代码命令,选中改代码块,转化为Markown后可显示出来

5、报告自动推送

方法1:可以采用钉钉机器人自动化推送

方法2:可以采用邮件的形式直接推送相关文件

你可能感兴趣的:(ipynb文件报告自动化执行推送)