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_tself.start_t 的值,只需更新 total

您应该执行以下操作,而不是调用 t.reset(total=new_total)

t.total = new_total
t.refresh()