gpt4 book ai didi

python - 多处理 : use tqdm to display a progress bar

转载 作者:IT老高 更新时间:2023-10-28 20:22:54 32 4
gpt4 key购买 nike

为了使我的代码更“pythonic”和更快,我使用 multiprocessing 和 map 函数来发送它 a) 函数和 b) 迭代范围。

植入的解决方案(即直接在范围 tqdm.tqdm(range(0, 30)) 上调用 tqdm)不适用于多处理(如公式下面的代码)。

进度条显示从0到100%(python读取代码时?)但并不表示map函数的实际进度。

如何显示一个进度条来指示“ map ”功能在哪一步?

from multiprocessing import Pool
import tqdm
import time

def _foo(my_number):
square = my_number * my_number
time.sleep(1)
return square

if __name__ == '__main__':
p = Pool(2)
r = p.map(_foo, tqdm.tqdm(range(0, 30)))
p.close()
p.join()

欢迎任何帮助或建议...

最佳答案

使用 imap 代替 map,后者返回已处理值的迭代器。

from multiprocessing import Pool
import tqdm
import time

def _foo(my_number):
square = my_number * my_number
time.sleep(1)
return square

if __name__ == '__main__':
with Pool(2) as p:
r = list(tqdm.tqdm(p.imap(_foo, range(30)), total=30))

关于python - 多处理 : use tqdm to display a progress bar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41920124/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com