标签: tqdm

如何在 Jupyter 中使用 tqdm 进度条?

我正在使用 Jupyter 小部件编写一个界面,用户在其中配置一堆设置,然后单击“运行”按钮。单击后,此按钮将调用另一个模块中实现的函数。该函数需要一些时间才能运行,因此我使用该包向其添加了一个进度条tqdm。不幸的是,当我单击“运行”时,此进度条现在显示在另一个终端中,而不是在单元格的输出中。有没有办法让条形图显示在同一单元格输出中?

python ipywidgets tqdm jupyter-lab

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

Python改变Tqdm栏样式

是否可以将 tqdm 栏从

\n
[Step 1]: 100%|\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  | 109/109 [00:03<00:00, 32.46it/s]\n
Run Code Online (Sandbox Code Playgroud)\n

类似的东西

\n
[Step 1]: 100%[==========================>  ] 109/109 [00:03<00:00, 32.46it/s]\n
Run Code Online (Sandbox Code Playgroud)\n

python tqdm

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

Docker 内线程内的 tqdm 不显示进度条

从 Docker 容器内部来看,tqdm在其自己的线程上运行时似乎出现了一些问题。

我尝试了其他进度条(例如alive-progress),但它们都失败了。当在容器外部运行时,相同的代码可以完美地工作。这似乎是 Docker 特有的问题,很可能是一个docker-compose问题,但我无法发现问题。有什么建议吗?

编辑:docker run -it console_test 有效。肯定是配置有问题docker-compose.yml

重现步骤:

console_test/console.py

import threading
import time
import tqdm
import sys

print("Starting the test")


def job():
    for i in tqdm.tqdm(range(50)):
        time.sleep(0.1)
        sys.stdout.flush()  # this has no effect
        # print("Hi")  # this is printed though!
    print("Finished.")


job_thread = threading.Thread(target=job)
job_thread.start()

while 1:
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

console_test/Dockerfile

# Using official python runtime base image
FROM python:3.8.9

RUN pip install tqdm …
Run Code Online (Sandbox Code Playgroud)

python progress-bar docker docker-compose tqdm

6
推荐指数
0
解决办法
2720
查看次数

如何让 tqdm 在 pandas 应用上工作?

Tqdm 文档显示了 tqdm 使用 Progress_apply 处理 pandas apply 的示例。我从这里https://tqdm.github.io/docs/tqdm/改编了以下代码,该代码通常需要几分钟才能执行(func1 是一个正则表达式函数)。

from tqdm import tqdm
tqdm.pandas()
df.progress_apply(lambda x: func1(x.textbody), axis=1)
Run Code Online (Sandbox Code Playgroud)

生成的进度条不显示任何进度。它只是从循环开始时的 0 跳到循环结束时的 100。我当前正在运行 tqdm 版本 4.61.2

python pandas tqdm

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

VS Code Jupyter Notebook:找不到 IProgress

我正在尝试运行一个非常简单的 tqdm 脚本:

from tqdm.notebook import tqdm
for i in tqdm(range(10)):
    time.sleep(1)
Run Code Online (Sandbox Code Playgroud)

但我遇到了:

IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html
Run Code Online (Sandbox Code Playgroud)

我的 ipywidgets 是 v8.0.4,jupyter v1.0.0...tqdm 不再与 VS Code Jupyter Notebook 一起使用吗?

python progress-bar jupyter-notebook ipywidgets tqdm

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

在运行测试或通过cron运行代码时使tqdm的输出静音

我正在使用tqdm显示进度条,同时完成了一些长期运行的Django管理命令。它很好用(很容易使用!),但是...

当我对代码运行单元测试时,我想停止输出进度条。而且,如果我使用cron或其他某种方式在后台运行这些命令,我​​也希望进度条不在输出中。

我看不到做这两种事情的简便方法,但是也许我错过了什么?

django cron tqdm

5
推荐指数
4
解决办法
1539
查看次数

在Python中使用dask将tqdm与延迟执行结合起来

tqdm并且dask是在Python迭代都惊人的包。在tqdm实现所需的进度条的同时,dask实现了多线程平台,它们都可以使迭代过程更轻松。但是-我很难将它们结合在一起。

例如,以下代码dask使用tqdm.trange进度条在中实现了延迟执行。事实是,由于delayed迅速执行,进度条立即结束,而真正的计算时间工作则在compute零件中完成。

from dask import delayed,compute
from tqdm import trange
from time import sleep

ct = time()
result= []

def fun(x):
    sleep(x)
    return x

for i in trange(10):
    result.append(delayed(fun)(i))

print compute(result)
Run Code Online (Sandbox Code Playgroud)

如何将进度条附加到compute命令的实际执行中?

python dask tqdm

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

循环断裂打破tqdm

以下简单代码使用tqdm在迭代循环时显示进度条:

import tqdm
for f in tqdm.tqdm(range(100000000)):
  if f > 100000000/4:
    break
Run Code Online (Sandbox Code Playgroud)

执行中断时失败:

$ python test.py 
 24%|????? | 24425076/100000000 [00:03<00:11, 6550673.18it/s]
Exception KeyError: KeyError(<weakref at 0x7fb8799f1158; to 'tqdm' at 0x7fb8799de190>,) in  ignored
Run Code Online (Sandbox Code Playgroud)

我使用的是Python v2.7.6和tqdm v4.32.1:

$ python --version
Python 2.7.6
$ python -m tqdm --version
4.23.1
Run Code Online (Sandbox Code Playgroud)

我在互联网上寻找类似的错误,没有任何积极的结果.

python tqdm

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

如何制作进度条,以便从大型xlsx文件加载pandas DataFrame?

来自https://pypi.org/project/tqdm/

import pandas as pd
import numpy as np
from tqdm import tqdm

df = pd.DataFrame(np.random.randint(0, 100, (100000, 6)))
tqdm.pandas(desc="my bar!")p`
df.progress_apply(lambda x: x**2)
Run Code Online (Sandbox Code Playgroud)

我接受了这段代码并对其进行了编辑,以便从load_excel创建一个DataFrame而不是使用随机数:

import pandas as pd
from tqdm import tqdm
import numpy as np

filename="huge_file.xlsx"
df = pd.DataFrame(pd.read_excel(filename))
tqdm.pandas()
df.progress_apply(lambda x: x**2)
Run Code Online (Sandbox Code Playgroud)

这给了我一个错误,所以我将df.progress_apply更改为:

df.progress_apply(lambda x: x)
Run Code Online (Sandbox Code Playgroud)

这是最终代码:

import pandas as pd
from tqdm import tqdm
import numpy as np

filename="huge_file.xlsx"
df = pd.DataFrame(pd.read_excel(filename))
tqdm.pandas()
df.progress_apply(lambda x: x)
Run Code Online (Sandbox Code Playgroud)

这会产生一个进度条,但实际上并没有显示任何进度,而是加载进度条,并且当​​操作完成时,它会跳到100%,无法达到目的。

我的问题是:如何使进度条起作用?
progress_apply内部的函数实际上是做什么的?
有没有更好的方法?也许是tqdm的替代品?

任何帮助是极大的赞赏。

python excel pandas tqdm

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

为 asyncio 制作 tqdm 进度条

我正在尝试使用收集的异步任务的 tqdm 进度条。

希望在完成任务后逐步更新进度条。试过代码:

import asyncio
import tqdm
import random

async def factorial(name, number):
    f = 1
    for i in range(2, number+1):
        await asyncio.sleep(random.random())
        f *= i
    print(f"Task {name}: factorial {number} = {f}")

async def tq(flen):
    for _ in tqdm.tqdm(range(flen)):
        await asyncio.sleep(0.1)

async def main():
    # Schedule the three concurrently

    flist = [factorial("A", 2),
        factorial("B", 3),
        factorial("C", 4)]

    await asyncio.gather(*flist, tq(len(flist)))

asyncio.run(main())
Run Code Online (Sandbox Code Playgroud)

...但这只是完成了 tqdm 条,然后处理阶乘。

有没有办法在每个 asyncio 任务完成后让进度条移动?

python tqdm

5
推荐指数
4
解决办法
4083
查看次数