为了让我的代码更加“pythonic”且更快,我使用
multiprocessing
和一个map函数来将a)函数和b)迭代范围发送给它。但是,针对嵌入式方案(即直接在范围上调用tqdm.tqdm(range(0, 30))
)无法与多进程一起使用(如下面的代码所示)。进度条显示从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()
欢迎提供任何帮助或建议...
.starmap()
解决方案的人:这里提供了一个修补程序,可以添加.istarmap()
到Pool
,它也能够与tqdm
一起使用。 - Darkonaut