我正在为一些长期运行的控制台进程制作进度指示器,并打算像这样使用它:
pi = ProgressIndicator()
for x in somelongstuff:
do stuff
pi.update()
pi.print_totals()
基本上,它应该输出某种带有点和破折号的进度条,最后输出类似“234234 bytes processing”的内容。
我认为将它用作上下文管理器会很好:
with ProgressIndicator() as pi:
for x in somelongstuff:
do stuff
pi.update()
然而,关于这个解决方案,我有几件事情让我担心:
- 额外的缩进使指示器功能看起来比实际更重要
- 我不想
ProgressIndicator
处理循环中可能发生的任何异常
这是上下文管理器的有效用例吗?您还能建议哪些其他解决方案?