我已經看到iPython開發人員就如何將ipython筆記本轉換爲a blog post, a pdf或甚至轉換爲entire book(〜分鐘43)進行了一些討論。 PDF-to-X converter解釋用markdown或代碼編寫的iPython單元,並在一個步驟中吐出新格式化的文檔。以編程方式將單元格添加到ipython筆記本以生成報表
我的問題是,我想生成一個大的文檔,其中許多數字和部分是以編程方式生成的 - 例如this。爲了使用上面的方法在iPython中工作,我需要能夠編寫一個可以編寫其他iPython代碼塊的函數。這種能力是否存在?
#some pseudocode to give an idea
for variable in list:
image = make_image(variable)
write_iPython_Markdown_Cell(variable)
write_iPython_Image_cell(image)
我想這可能是有用的,所以我想知道如果:
- 通過IPython的產生IPython的細胞可能
- 如果是有原因的,這是一個壞主意,我應該堅持到像模板庫(Jinja)這樣的「經典」解決方案。
感謝, 扎克CP
編輯:每托馬斯的建議, 正如我貼在ipython mailing list,並來到了這個想法的可行性一些反饋。總之 - 有一些技術上的困難使得這個想法對於最初的想法不太理想。對於想要生成降價單元格和相應圖像/表格的重複性報告,通過ipython內核/瀏覽器工作比直接使用Jinja等模板系統生成報告要複雜得多。
謝謝托馬斯。如果這是我需要在別處尋找的唯一功能。它可以添加文本而不是圖像(它們不會被渲染)。它也會導致與期望的順序相反,因爲它總是從下一行的頂部加起來,從而推低其他行。因此,模板引擎可能會是一條好路徑,儘管它有一個很好的方法來創建一個一個文件的方法(如果它很簡單)。 – zach
沒有真正的'圖像單元',但是您可以將圖像顯示爲代碼的輸出。到多於一個的顯示更多的,請參閱'Image'類和'在[IPython.core.display] display'函數(https://github.com/ipython/ipython/blob/master/IPython/core/display.py) 。我認爲還沒有辦法添加一個Markdown單元,但如果您將它添加到郵件列表中,可能會有興趣添加一個。 –
你是對的我可以這樣做:x = Image(filename ='test.png'); get_ipython()。set_next_input(display_png(x))顯示圖像,但是我不能在這些圖像之間放置文本。也必須有一種方法來隱藏原始細胞。所以也許這有點複雜,但我會按照你的建議發佈到郵件列表。謝謝。 – zach