ipynb文件報告自動化執(zhí)行推送
Jupyter notebook 文件對于數(shù)據(jù)科學(xué)代碼執(zhí)行和富文本報告的輸出比較友好(兼容markdown文檔,且代碼塊的結(jié)構(gòu)形式);但是ipynb文件并非標(biāo)準(zhǔn)的腳本文件,對于掛載定時自動化任務(wù)不太方便;還好有
nbconvert包的支持,可操做ipynb文件的執(zhí)行和轉(zhuǎn)化 ,因此本文紀(jì)錄如何掛載ipynb定時報告的執(zhí)行和轉(zhuǎn)化html及報告的推送。
1、環(huán)境要求:
Python3 版本
jupyter notebook
nbconvert 包
測試相關(guān)環(huán)境時候是否準(zhǔn)備好?
后臺輸入以下命令:
jupyter nbconvert
如果出現(xiàn)以下提示,則說明環(huán)境已滿足

2、ipynb文件的執(zhí)行
--execute是執(zhí)行ipynb代碼的命令;Untitled.ipynb為所被執(zhí)行的文件;ExecutePreprocessor.kernel_name=python3指定選擇的python內(nèi)核
jupyter nbconvert --execute --to notebook --inplace Untitled.ipynb --ExecutePreprocessor.kernel_name=python3
3、notebook文件轉(zhuǎn)化為html
html文件可以在沒有notebook環(huán)境的狀態(tài)下通過瀏覽器打開查看,因此在報告輸出時方便用戶查看,轉(zhuǎn)化為html格式的效果兼容性較好。
-- to html是轉(zhuǎn)化為html格式的命令
jupyter nbconvert --to html Untitled.ipynb # 轉(zhuǎn)化為 html
注:ipynb支持轉(zhuǎn)化的文件格式較多(包含如下,轉(zhuǎn)化方式詳見官方文檔)
注意:目前還不支持轉(zhuǎn)化為圖片,題主的處理方法是通過Selenium+PhantomJS 讀取html文件,保存成圖片的形式實現(xiàn)
4、jupyter notebook的代碼隱藏和顯示
輸出的報告,一般為了美觀需要隱藏掉python代碼,而只展示輸出的結(jié)果,因此需要隱藏代碼,只需保留對應(yīng)的結(jié)果。
在notbook文件末尾添加如下python代碼可隱藏整個notebook的python腳本:
from IPython.display import HTML
quote ="""<script> $('div.input').hide()</script>
<style>div.prompt{display:none} </style>
"""
HTML(quote)
注 : ('div.input').hide()中hide()是隱藏全部代碼;改為show()可顯示全部代碼
? display:none中none是不顯示代碼塊號;改為show可顯示全部代碼塊號
? 如果要顯示上面這個代碼命令,選中改代碼塊,轉(zhuǎn)化為Markown后可顯示出來
5、報告自動推送
方法1:可以采用釘釘機器人自動化推送
方法2:可以采用郵件的形式直接推送相關(guān)文件