簡體   English   中英

Python:print()始終寫入.ipynb,使文件過大

[英]Python: print() always writes to .ipynb making file too large

為了順理成章,我想知道如何在ipython筆記本中顯示打印語句,同時防止這些語句保存到.ipynb文件中。 目的是制作一個進度條,該進度條不會使文件的大小變得可笑。

這樣做的背景是,我一直在編寫一些python代碼,這些代碼制作了一堆png文件,以便最終將它們編譯為GIF。 在執行此操作時,我認為我會很聰明,可以使用__future__ print()和回車符來print()任務的進度。 不幸的是,盡管我的代碼有兩個問題,但我認為這兩個問題都與我對該進度消息的實現有關。

第一個問題是github對文件大小的限制:

當我第一次嘗試將文件上傳到github時,它阻止了我這樣做,因為它超出了其100 MB的限制。 在調查我的.ipynb文件之后,我發現那里保存着許多討厭的打印語句。 最初,我認為將'\\r'包含在內以防止回車,但是顯然不是這種情況。

第二個問題可能與此有關:

通常,創建前幾個GIF不會有問題,尤其是當我不包含那么多幀時,但是除此之外,我的python筆記本也會崩潰。 如果這是一個典型的內存問題,我想它會向我拋出一個錯誤,但是不會,而是立即對我死亡。

這是使.ipynb文件膨脹的一類示例:

{
   "output_type": "stream",
   "stream": "stdout",
   "text": [
    "\r",
    "frame 1 -- 0.480% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.500% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.520% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.540% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.560% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.580% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.600% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.620% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.640% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.660% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.680% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.700% complete -- U_avg = -7.200000\r",
    "frame 1 -- 0.720% complete -- U_avg = -7.200000\r", ......

我研究了其他人如何實現進度條,但是他們似乎並沒有做任何特別的事情來實際上避免我遇到的問題。 如果涉及到這個問題,我不會介意導入一些可以解決此問題的方法,但是同時,如果我在其他情況下遇到此問題,了解如何減少.ipynb也會很有用。通過剪切保存的打印語句來確定文件大小。

謝謝!

我可以想到兩種可能的解決方案:

  1. 添加條件,以便僅在取得重大進展時才打印? 即只打印整個百分點。

  2. 使用Javascript顯示和更新進度條。 Javascript需要定期調用ipython內核以獲取進度更新。 示例: https//jakevdp.github.io/blog/2013/06/01/ipython-notebook-javascript-python-communication/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM