tqdm:更新总数而不重置经过的时间
tqdm: update total without resetting time elapsed
我在递归目录树时使用 tqdm。我不知道我将使用的路径数量,我不想在完成工作之前构建该列表只是为了获得准确的总数,我宁愿让它只更新进度条它继续。
我发现我可以很好地使用 'reset(total=new_total)',但这也会重置时间。有没有一种方法可以保留时间,但只需将总数设置为新的值?
这里是tqdm
包里面的reset
函数定义的定义:
def reset(self, total=None):
"""
Resets to 0 iterations for repeated use.
Consider combining with `leave=True`.
Parameters
----------
total : int, optional. Total to use for the new bar.
"""
self.last_print_n = self.n = 0
self.last_print_t = self.start_t = self._time()
if total is not None:
self.total = total
self.refresh()
您需要的是不更新 self.last_print_t
和 self.start_t
的值,只需更新 total
您应该执行以下操作,而不是调用 t.reset(total=new_total)
:
t.total = new_total
t.refresh()
我在递归目录树时使用 tqdm。我不知道我将使用的路径数量,我不想在完成工作之前构建该列表只是为了获得准确的总数,我宁愿让它只更新进度条它继续。
我发现我可以很好地使用 'reset(total=new_total)',但这也会重置时间。有没有一种方法可以保留时间,但只需将总数设置为新的值?
这里是tqdm
包里面的reset
函数定义的定义:
def reset(self, total=None):
"""
Resets to 0 iterations for repeated use.
Consider combining with `leave=True`.
Parameters
----------
total : int, optional. Total to use for the new bar.
"""
self.last_print_n = self.n = 0
self.last_print_t = self.start_t = self._time()
if total is not None:
self.total = total
self.refresh()
您需要的是不更新 self.last_print_t
和 self.start_t
的值,只需更新 total
您应该执行以下操作,而不是调用 t.reset(total=new_total)
:
t.total = new_total
t.refresh()