为了切入追逐,我想知道如何在ipython笔记本中显示打印语句,同时防止这些语句保存到.ipynb文件。目的是制作一个不会使文件大小过大的进度条。
这背景是我一直在编写一些python代码,这些代码会生成一堆png文件,这样我最终可以将它们编译成GIF。当我这样做时,我认为我会聪明地打印任务的进度,因为它使用来自print()
的{{1}}回车。不幸的是,尽管我的代码存在两个问题,但我认为这两个问题都与我对此进度消息的实现有关。
第一个问题是github对文件大小的限制:
当我第一次尝试将文件上传到github时,它阻止我这样做,因为它超过了100 MB的限制。在调查我的.ipynb文件后,我发现有一些淫秽的打印声明被保存在那里。最初我认为包括__future__
来回车会阻止这种情况,但显然事实并非如此。
第二个问题可能与此有关:
通常我在创建前几个GIF时没有问题,特别是如果我不包含那么多帧,不过我的python笔记本崩溃了。如果这是一个典型的记忆问题,我想它只会给我一个错误,但事实并非如此,而是立即死在我身上。
以下是.ipynb文件膨胀的那种东西的样本:
'\r'
我已经研究过其他人如何实施进度条,但是它们似乎没有做任何特别的事情,这实际上可以防止我遇到的问题。如果它归结为它,我不介意导入一些可以在黑盒子中解决这个问题,但同时如果我在不同的上下文中遇到这个问题,知道如何减少.ipynb将是有用的。通过删除保存的打印语句来缩小文件大小。
谢谢!
答案 0 :(得分:0)
我可以想到两种可能的解决方案:
添加条件,以便只有在取得重大进展时才会打印?即只打印整个百分点。
使用Javascript显示和更新进度条。 Javascript需要定期调用ipython内核来获取进度更新。示例:https://jakevdp.github.io/blog/2013/06/01/ipython-notebook-javascript-python-communication/