作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
为了使我的代码更“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/
我是一名优秀的程序员,十分优秀!