pen*_*992 6 python jupyter jupyter-notebook
我正在使用 Jupyter Notebook 和 Python 3.0。
我有一段代码需要一段时间才能在 Jupyter Notebook 中执行并识别其当前状态,我想对它所在的循环进行计数器,如下所示:
large_number = 1000
for i in range(large_number):
print('{} / {} complete.'.format(i,large_number))
Run Code Online (Sandbox Code Playgroud)
这样做的问题是,它会为每次迭代打印一个新行,我不想这样做......相反,我只想更新该值。
我可以在 Jupyter Notebook 中执行此操作吗?
Jupyter 中此功能的事实标准是tqdm,特别是 tqdm_notebook。它使用简单,提供信息丰富的输出,并且有多种选项。您还可以将它用于 cli 工作。
from tqdm import tqdm_notebook
from time import sleep
for i in tqdm_notebook(range(100)):
sleep(.05)
Run Code Online (Sandbox Code Playgroud)
输出将是这样的:
我喜欢制作一个 ascii 状态栏。假设您需要运行 1000 次迭代并希望在完成之前看到 20 次更新:
num_iter = 1000
num_updates = 20
update_per = num_iter // num_updates # make sure it's an integer
print('|{}|'.format(' ' * (num_updates - 2))) # gives you a reference
for i in range(num_iter):
# code stuff
if i % update_per == 0:
print('*', end='', flush=True)
Run Code Online (Sandbox Code Playgroud)
为您提供如下更新:
| |
*******
Run Code Online (Sandbox Code Playgroud)
当它运行时。
| 归档时间: |
|
| 查看次数: |
4580 次 |
| 最近记录: |