在我的python项目中,我使用tqdm
模块显示进度条。
我想在进度条之前的行上打印持久性消息。
set_description
方法在同一行打印消息,而tqdm.write
创建一个新行。
使用set_description
$ python pbar.py
{Task_1 message} 3%|████ ]
是否有可能实现这一目标
$ python pbar.py
{Task_1 message}
3%|████ ]
编辑:
from tqdm import tqdm
pbar = tqdm(m_list)
for item in m_list:
# Do work
pbar.update(1)
pbar.close()
答案 0 :(得分:1)
循环的简单示例:
ontouchdown
最终输出:
import tqdm,time
for i in tqdm.tqdm(range(9),desc="{Task_1 message}"):
time.sleep(0.1)
如果您在说明中添加{Task_1 message}: 100%|##############################################| 9/9 [00:00<00:00, 9.99it/s]
,则会将输出丢弃,如下所示:
\n
你唯一能做的就是首先打印描述,然后运行没有描述的任务,因为你只能删除终端中的当前行。
{Task_1 message}
{Task_1 message} | 0/9 [00:00<?, ?it/s]
{Task_1 message} | 1/9 [00:00<00:00, 9.99it/s]
{Task_1 message}# | 2/9 [00:00<00:00, 9.99it/s]
{Task_1 message}###### | 3/9 [00:00<00:00, 9.99it/s]
{Task_1 message}########### | 4/9 [00:00<00:00, 9.99it/s]
{Task_1 message}################ | 5/9 [00:00<00:00, 9.99it/s]
{Task_1 message}##################### | 6/9 [00:00<00:00, 9.96it/s]
{Task_1 message}########################## | 7/9 [00:00<00:00, 9.97it/s]
{Task_1 message}############################### | 8/9 [00:00<00:00, 9.98it/s]
: 100%|#############################################| 9/9 [00:00<00:00, 9.98it/s]
如前所述,您只能删除终端中的当前行(使用import tqdm,time
print("{Task_1 message}")
for i in tqdm.tqdm(range(9)):
time.sleep(0.1)
),关于SO的限制有很多主题。
替代方案是使用curses,但这是一种完全不同的方法。
答案 1 :(得分:0)
这是一个可行的解决方法,对我有用:
return password_hash('password', PASSWORD_ARGON2I);