tqdm:更新总计而无需重置时间

时间:2019-11-20 18:05:50

标签: python tqdm

在递归目录树时,我正在使用tqdm。我不知道我将使用的路径数量,并且我不想在执行工作之前建立该列表,只是为了获得准确的总数,我宁愿它只是更新进度栏为它会持续下去。

我发现我可以很好地使用'reset(total = new_total)',但这也可以重置时间。有什么办法可以节省时间,但可以将总数设置为新的值?

1 个答案:

答案 0 :(得分:2)

这是reset包中的tqdm函数定义:

    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()

请确认以上各项是否符合您的要求。