标签: tqdm

使用 python tqdm 库重定向 stdout 和 stderr

我在 Python 中使用 tqdm 来显示控制台进度条。

我有一个来自另一个库的函数,它偶尔会写入 tqdm 循环内的 stdout 和 stderr。我无法破解该函数的源代码。

虽然此文档展示了如何重定向 sys.stdout,但它不容易推广到 stderr,因为我只能将 stdout 或 stderr 之一传递给file=tqdm 中的参数__init__。请参阅此问题及其接受的答案,以获取说明问题的最少代码。

如何同时重定向stdout和 stderr?

python tqdm

2
推荐指数
1
解决办法
4047
查看次数

Python tqdm软件包-如何配置不频繁的状态栏更新

tqdm在Python 3.6(Anaconda 3,Windows 10 x64,PyCharm IDE)中使用一个包(v4.19.5)进行了200K +迭代的循环。它过于频繁地打印状态栏,因此我以前的历史记录在控制台中消失了。

有没有办法限制状态栏更新的频率?我似乎找不到在线或tqdm网站上的解决方案。

目前,我的状态栏是这样打印的。理想情况下,我想为百分比变化设置上限。例如,每1%更改/进度更新一次的频率不超过一次。

在此处输入图片说明

python loops statusbar python-3.x tqdm

2
推荐指数
3
解决办法
919
查看次数

如何使用 tqdm 遍历列表

我想知道处理某个列表需要多长时间。

for a in tqdm(list1):
    if a in list2:
        #do something
Run Code Online (Sandbox Code Playgroud)

但这不起作用。如果我使用for a in tqdm(range(list1))我将无法检索列表值。

你知道怎么做吗?

python loops list python-3.x tqdm

2
推荐指数
2
解决办法
2万
查看次数

在 QPlainTextEdit 中使用 tqdm 显示终端输出

我正在尝试找到一种方法,与其他打印一起获取 pyqt 应用程序中进度条的结果/演变,例如在 QPlainTextEdit 小部件中。

我面临的问题是,进度条可以使用一些更高级的回车符,甚至更高级的光标定位,而这些大多不被字符串支持。我已经尝试过io.StringIO,但\r仍保持字面意思。

import io
from tqdm import tqdm
s = io.StringIO()
for i in tqdm(range(3), file=s):    
    sleep(.1)
Run Code Online (Sandbox Code Playgroud)

输出:

s.getvalue()

Out[24]: '\n\r  0%|          | 0/3 [00:00<?, ?it/s]\x1b[A\n\r 33%|###3      | 1/3 [00:00<00:00,  9.99it/s]\x1b[A\n\r 67%|######6   | 2/3 [00:00<00:00,  9.98it/s]\x1b[A\n\r100%|##########| 3/3 [00:00<00:00,  9.98it/s]\x1b[A\n\x1b[A'
Run Code Online (Sandbox Code Playgroud)

翻译为:

print(s.getvalue())
  0%|          | 0/3 [00:00<?, ?it/s]
 33%|###3      | 1/3 [00:00<00:00,  9.99it/s]
 67%|######6   | 2/3 [00:00<00:00,  9.98it/s]
100%|##########| 3/3 [00:00<00:00,  9.98it/s]
Run Code Online (Sandbox Code Playgroud)

需要明确的是,在我的输出中,我不想每次 tqdm 更新一行,而只是当前状态,因为它将打印在命令行上。

知道如何做到这一点吗?谢谢!

python pyqt qplaintextedit pyqt5 tqdm

2
推荐指数
1
解决办法
2337
查看次数

是否可以将 tqdm 用于 Pandas 合并操作?

我可以找到用于 group by 和其他 Pandas 操作的 tqdm 进度条的示例。但在合并或加入时找不到任何内容。

是否可以在 pandas 上使用 tqdm 进行合并?

python pandas tqdm

2
推荐指数
1
解决办法
1682
查看次数

tqdm:更新总数不重置时间已过

我正在使用 tqdm 递归目录树。我不知道我将使用的路径数量,而且我不想在我做工作之前构建该列表只是为了获得准确的总数,我宁愿让它将进度条更新为它继续。

我发现我可以很好地使用 'reset(total=new_total)',但这也会重置时间。有没有办法可以保持时间,但只需将总数设置为新的东西?

python tqdm

2
推荐指数
1
解决办法
2756
查看次数

TQDM 和多重处理 - python

我想在每个进程中使用 4 个 python 进程和 tqdm 进度条:

\n
 66%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x8c              | 80/122 [00:44<00:23,  1.79it/s]\n 35%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x89                           |  18/52 [00:08<00:16,  2.01it/s]\n 26%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x8b                                | 61/108 [00:44<00:34,  1.38it/s]\n 56%|\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x88\xe2\x96\x8b                  | 61/108 [00:44<00:34,  1.38it/s]\n
Run Code Online (Sandbox Code Playgroud)\n

所以它们就像同时显示和更新的 4 个一样。\n我怎样才能实现这一目标?

\n

python multiprocessing tqdm

2
推荐指数
1
解决办法
4483
查看次数

Python 中 For 循环的 tqdm

我正在使用在 python 中tqdm跟踪for循环的进度。

import numpy as np
from tqdm import tqdm 

x = np.arange(20000000)

x_30 = []

for _x in tqdm(x):
    x_30.append(_x**30)
Run Code Online (Sandbox Code Playgroud)

进度条如下所示。

在此处输入图片说明

你能帮我解释一下进度条吗?我真的不明白。

python for-loop tqdm

1
推荐指数
1
解决办法
2806
查看次数

tqdm 使我的程序速度至少减慢 8 倍

为了提供一些上下文,我有一个转换器,它分两步请求 JSON 数据,第一步是请求完整数量的 Data_points,第二步是请求每个数据点的详细信息。为了跟踪进度,因为我期望从此时开始请求大量数据。这就是我使用 tqdm 的原因,它确实使我的程序执行速度减慢了至少 8 倍。

\n
import requests\nimport json\nimport os\nimport time\nfrom datetime import timedelta\nfrom datetime import datetime\nfrom datetime import date\nimport pandas as pd\nimport shutil\nimport zipfile\nimport smtplib, ssl\nfrom progress.bar import Bar\nfrom tqdm import tqdm\nfrom time import sleep\n
Run Code Online (Sandbox Code Playgroud)\n

这是代码:

\n
def fetch_data_points(url: str):\n    limit_request = 100\n    # Placeholder for limit: please do not remove = 1000000000 -JJ\n    folder_path_reset("api_request_jsons","csv","Geographic_information")\n    total_start_time = start_time_measure()\n    start_time = start_time_measure(\n        \'Starting Phase 1: First request from API: Data Points\')\n\n    for i in tqdm(range(limit_request)):\n        response …
Run Code Online (Sandbox Code Playgroud)

python tqdm

1
推荐指数
1
解决办法
7626
查看次数

使用tqdm进度条,同时迭代python字典中的项目

如果我在迭代dict时试图获得进度条,我怎么能用tqdm做到这一点?我正在使用Python 2.7.

这适用于列表:

for i in tdqm(l, len(l):
    <do stuff>   
Run Code Online (Sandbox Code Playgroud)

但未能完成决定:

for k, v in tqdm(d.items(), len(d)):
   <do stuff>
Run Code Online (Sandbox Code Playgroud)

用dicts做这个的正确方法是什么?

这是一个真实的例子:

d = {'k1':1, 'k2':2}
for k, v in tqdm(d.items(), len(d)):
    print 'foo'
    a = 1 + 100
    print 'bar'
Run Code Online (Sandbox Code Playgroud)

我明白了:

-------------------------------------------------------------------
TypeError                         Traceback (most recent call last)
<ipython-input-30-7e4ce2b85414> in <module>()
      1 d = {'k1':1, 'k2':2}
----> 2 for k, v in tqdm(d.items(), len(d)):
      3     print 'oasdlkfj'
      4     a = 1 + 100
      5     print 'y'

/home/monica/anaconda2/envs/pytorch_p27/lib/python2.7/site-packages/tqdm/_tqdm.pyc in __init__(self, iterable, …
Run Code Online (Sandbox Code Playgroud)

python iteration dictionary items tqdm

0
推荐指数
2
解决办法
5636
查看次数

避免在特殊情况下重写 FOR 循环

我所有的 python 脚本都接受一个名为 的 bool 参数debug,如果为 True,则打印出大量内容并for使用tqdm如下所示的循环进度条

from tqdm import tqdm
for i in tqdm(range(1000)):
     ## rest of the calculation
Run Code Online (Sandbox Code Playgroud)

但是,我想tqdm在 debug 为 false 时禁用进度条,除了在for没有tqdm(对于 debug=False 的情况下)再次重写循环之外,我不知道如何执行此操作。非常感谢有关如何更优雅地执行此操作的任何建议。

谢谢

python for-loop tqdm

0
推荐指数
1
解决办法
85
查看次数

有没有办法将 TQDM 控制台输出保存到文件中?

我一直在尝试将tqdm Python 库中的tqdm进度条保存到文本文件中。我尝试将sys.stdoutsys.stderr重定向到一个文件:

在此输入图像描述

但是,仅保存stdout的输出(例如打印语句),而不保存tqdm进度条。进度条保留在控制台中。

python console tqdm

0
推荐指数
1
解决办法
6257
查看次数