Python 如何格式化tqdm进度条以显示每分钟而不是每秒的进度?

Python 如何格式化tqdm进度条以显示每分钟而不是每秒的进度?,python,python-3.x,progress-bar,tqdm,Python,Python 3.x,Progress Bar,Tqdm,我在上或中找不到这一点,但我想知道是否有一种集成的方式(首选)或解决方法来显示一次迭代所需的平均时间(以分钟为单位,而不是以秒为单位) 具体来说,TQM显示类似于1283.31s/it的内容,但如果每次迭代需要几分钟或几个小时,则显示类似于21m/it的内容会更有帮助 我们可以通过使用以下说明向tqdm的自定义实例添加自定义bar\u格式参数来完成此操作: 我们在这里所做的是用一个自定义版本覆盖format\u dict,该版本添加了一个新的stat,可以在bar\u format参数中使用d是

我在上或中找不到这一点,但我想知道是否有一种集成的方式(首选)或解决方法来显示一次迭代所需的平均时间(以分钟为单位,而不是以秒为单位)


具体来说,TQM显示类似于
1283.31s/it
的内容,但如果每次迭代需要几分钟或几个小时,则显示类似于
21m/it
的内容会更有帮助

我们可以通过使用以下说明向
tqdm
的自定义实例添加自定义
bar\u格式
参数来完成此操作:

我们在这里所做的是用一个自定义版本覆盖
format\u dict
,该版本添加了一个新的stat,可以在
bar\u format
参数中使用
d
是现有的
format_dict
,因此我们可以使用它来获得
{rate}
的值,将其转换为每次迭代的时间(1/rate),除以60,然后将其格式化为小数点后2位。然后,我们用新的stat更新
d
——我们甚至可以使用字符串连接来添加一些格式。请注意,在任何迭代完成之前,
{rate}
None
,这意味着这将给出一个错误,除非您执行
if d[“rate”]
检查

完成后,如果您使用的是
tqdm
的自定义实例,则可以在中列出的参数字符串旁边使用
bar\u格式的此统计:

b='{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, {rate_min}{postfix}]'
for i in TqdmExtraFormat(range(2), unit_scale = 60, bar_format=b):
    time.sleep(6)
b='{l_bar}{bar}{124;{n_fmt}/{total_fmt}[{eassed}类TqdmExtraFormat(tqdm):类型错误:模块()最多接受2个参数(给定3个)
b='{l_bar}{bar}| {n_fmt}/{total_fmt} [{elapsed}<{remaining}, {rate_min}{postfix}]'
for i in TqdmExtraFormat(range(2), unit_scale = 60, bar_format=b):
    time.sleep(6)