Basically, I have read through multiple posts on this issue. However, mine is a little bit different, as I am dealing with nested loops. In particular, the inner loop uses concurrent.futures.ProcessPoolExecutor, I have tried adding a position
parameter in tqdm
(here) as well as updating the colorama
package but all in vain. I still kept getting duplicated progress bars no matter what I do.
from concurrent.futures import ThreadPoolExecutor, as_completed
from tqdm import tqdm
import requests
import time
import random
def download_file(url, pbar):
for _ in range(30):
time.sleep(.50 * random.random())
pbar.update(1)
return url
if __name__ == "__main__":
urls = ["http://mirrors.evowise.com/linuxmint/stable/20/linuxmint-20-xfce-64bit.iso",
"https://www.vmware.com/go/getworkstation-win",
"https://download.geany.org/geany-1.36_setup.exe"]
aggregate_result = []
with ThreadPoolExecutor(max_workers=3) as ex:
r = range(3)
with tqdm(r, position = 0) as pbar2:
for _ in r :
with tqdm(total=90, position = 1) as pbar:
futures = [ex.submit(download_file, url, pbar) for url in urls]
for future in as_completed(futures):
aggregate_result.append(future.result())
# pbar2.update(1)
pbar2.update(1)
And this is my output in Spyder
0%| | 0/3 [00:00<?, ?it/s]
0%| | 0/90 [00:00<?, ?it/s]
1%| | 1/90 [00:00<00:15, 5.68it/s]
4%|▍ | 4/90 [00:00<00:07, 11.82it/s]
7%|▋ | 6/90 [00:00<00:07, 10.85it/s]
9%|▉ | 8/90 [00:00<00:08, 9.27it/s]
12%|█▏ | 11/90 [00:01<00:06, 11.81it/s]
14%|█▍ | 13/90 [00:01<00:05, 13.22it/s]
17%|█▋ | 15/90 [00:01<00:06, 11.37it/s]
19%|█▉ | 17/90 [00:01<00:06, 11.77it/s]
22%|██▏ | 20/90 [00:01<00:06, 11.34it/s]
22%|██▏ | 20/90 [00:01<00:06, 11.34it/s]
24%|██▍ | 22/90 [00:01<00:06, 10.19it/s]
27%|██▋ | 24/90 [00:02<00:08, 7.72it/s]
29%|██▉ | 26/90 [00:02<00:07, 9.07it/s]
31%|███ | 28/90 [00:02<00:06, 9.91it/s]
33%|███▎ | 30/90 [00:02<00:05, 11.16it/s]
36%|███▌ | 32/90 [00:03<00:05, 10.77it/s]
38%|███▊ | 34/90 [00:03<00:04, 11.31it/s]
40%|████ | 36/90 [00:03<00:04, 11.71it/s]
42%|████▏ | 38/90 [00:03<00:05, 9.82it/s]
46%|████▌ | 41/90 [00:03<00:04, 12.16it/s]
48%|████▊ | 43/90 [00:03<00:04, 11.47it/s]
50%|█████ | 45/90 [00:04<00:04, 9.99it/s]
52%|█████▏ | 47/90 [00:04<00:04, 8.76it/s]
56%|█████▌ | 50/90 [00:04<00:03, 11.27it/s]
58%|█████▊ | 52/90 [00:04<00:03, 11.90it/s]
60%|██████ | 54/90 [00:05<00:03, 10.54it/s]
63%|██████▎ | 57/90 [00:05<00:02, 13.69it/s]
66%|██████▌ | 59/90 [00:05<00:02, 13.38it/s]
68%|██████▊ | 61/90 [00:05<00:02, 11.85it/s]
70%|███████ | 63/90 [00:05<00:02, 10.47it/s]
74%|███████▍ | 67/90 [00:05<00:01, 14.20it/s]
77%|███████▋ | 69/90 [00:06<00:01, 10.54it/s]
79%|███████▉ | 71/90 [00:06<00:01, 11.05it/s]
81%|████████ | 73/90 [00:06<00:01, 10.68it/s]
83%|████████▎ | 75/90 [00:06<00:01, 9.37it/s]
86%|████████▌ | 77/90 [00:07<00:01, 8.77it/s]
89%|████████▉ | 80/90 [00:07<00:01, 9.97it/s]
91%|█████████ | 82/90 [00:07<00:01, 7.50it/s]
93%|█████████▎| 84/90 [00:08<00:00, 8.74it/s]
93%|█████████▎| 84/90 [00:08<00:00, 8.74it/s]
96%|█████████▌| 86/90 [00:08<00:00, 7.43it/s]
97%|█████████▋| 87/90 [00:08<00:00, 7.06it/s]
99%|█████████▉| 89/90 [00:09<00:00, 5.69it/s]
100%|██████████| 90/90 [00:09<00:00, 9.75it/s]
33%|███▎ | 1/3 [00:09<00:18, 9.23s/it]
0%| | 0/90 [00:00<?, ?it/s]
1%| | 1/90 [00:00<00:16, 5.52it/s]
4%|▍ | 4/90 [00:00<00:08, 10.09it/s]
4%|▍ | 4/90 [00:00<00:08, 10.09it/s]
8%|▊ | 7/90 [00:00<00:08, 10.08it/s]
10%|█ | 9/90 [00:00<00:07, 11.04it/s]
12%|█▏ | 11/90 [00:00<00:06, 12.24it/s]
14%|█▍ | 13/90 [00:01<00:06, 11.10it/s]
17%|█▋ | 15/90 [00:01<00:08, 9.10it/s]
19%|█▉ | 17/90 [00:01<00:07, 9.13it/s]
23%|██▎ | 21/90 [00:01<00:05, 11.91it/s]
26%|██▌ | 23/90 [00:02<00:05, 11.85it/s]
28%|██▊ | 25/90 [00:02<00:05, 12.40it/s]
30%|███ | 27/90 [00:02<00:05, 11.91it/s]
32%|███▏ | 29/90 [00:02<00:05, 10.72it/s]
34%|███▍ | 31/90 [00:02<00:05, 10.02it/s]
37%|███▋ | 33/90 [00:03<00:05, 10.71it/s]
39%|███▉ | 35/90 [00:03<00:06, 8.61it/s]
40%|████ | 36/90 [00:03<00:06, 8.13it/s]
42%|████▏ | 38/90 [00:03<00:05, 9.48it/s]
44%|████▍ | 40/90 [00:03<00:05, 8.39it/s]
46%|████▌ | 41/90 [00:04<00:06, 7.94it/s]
49%|████▉ | 44/90 [00:04<00:05, 8.79it/s]
49%|████▉ | 44/90 [00:04<00:05, 8.79it/s]
51%|█████ | 46/90 [00:04<00:04, 10.36it/s]
53%|█████▎ | 48/90 [00:04<00:03, 10.72it/s]
56%|█████▌ | 50/90 [00:04<00:03, 11.55it/s]
58%|█████▊ | 52/90 [00:05<00:03, 10.24it/s]
61%|██████ | 55/90 [00:05<00:02, 13.49it/s]
63%|██████▎ | 57/90 [00:05<00:02, 11.92it/s]
68%|██████▊ | 61/90 [00:05<00:02, 14.39it/s]
70%|███████ | 63/90 [00:05<00:01, 13.98it/s]
73%|███████▎ | 66/90 [00:06<00:01, 12.88it/s]
73%|███████▎ | 66/90 [00:06<00:01, 12.88it/s]
76%|███████▌ | 68/90 [00:06<00:02, 10.94it/s]
78%|███████▊ | 70/90 [00:06<00:01, 11.11it/s]
80%|████████ | 72/90 [00:06<00:01, 10.72it/s]
82%|████████▏ | 74/90 [00:06<00:01, 10.94it/s]
84%|████████▍ | 76/90 [00:07<00:01, 10.63it/s]
88%|████████▊ | 79/90 [00:07<00:01, 10.68it/s]
92%|█████████▏| 83/90 [00:07<00:00, 13.23it/s]
92%|█████████▏| 83/90 [00:07<00:00, 13.23it/s]
94%|█████████▍| 85/90 [00:07<00:00, 9.79it/s]
97%|█████████▋| 87/90 [00:08<00:00, 10.80it/s]
100%|██████████| 90/90 [00:08<00:00, 10.95it/s]
100%|██████████| 90/90 [00:08<00:00, 10.87it/s]
67%|██████▋ | 2/3 [00:17<00:08, 8.67s/it]
0%| | 0/90 [00:00<?, ?it/s]
1%| | 1/90 [00:00<00:14, 6.04it/s]
3%|▎ | 3/90 [00:00<00:08, 9.89it/s]
7%|▋ | 6/90 [00:00<00:06, 13.42it/s]
7%|▋ | 6/90 [00:00<00:06, 13.42it/s]
9%|▉ | 8/90 [00:00<00:06, 12.02it/s]
11%|█ | 10/90 [00:00<00:07, 11.23it/s]
13%|█▎ | 12/90 [00:01<00:08, 9.52it/s]
16%|█▌ | 14/90 [00:01<00:07, 10.12it/s]
18%|█▊ | 16/90 [00:01<00:07, 9.79it/s]
22%|██▏ | 20/90 [00:01<00:05, 13.09it/s]
26%|██▌ | 23/90 [00:01<00:04, 15.41it/s]
29%|██▉ | 26/90 [00:02<00:03, 16.50it/s]
33%|███▎ | 30/90 [00:02<00:04, 13.96it/s]
37%|███▋ | 33/90 [00:02<00:04, 13.35it/s]
40%|████ | 36/90 [00:02<00:04, 12.19it/s]
42%|████▏ | 38/90 [00:03<00:03, 13.18it/s]
44%|████▍ | 40/90 [00:03<00:03, 13.73it/s]
47%|████▋ | 42/90 [00:03<00:04, 9.98it/s]
49%|████▉ | 44/90 [00:03<00:04, 9.21it/s]
51%|█████ | 46/90 [00:04<00:04, 8.87it/s]
53%|█████▎ | 48/90 [00:04<00:05, 8.13it/s]
57%|█████▋ | 51/90 [00:04<00:03, 9.99it/s]
59%|█████▉ | 53/90 [00:04<00:03, 10.42it/s]
61%|██████ | 55/90 [00:05<00:03, 8.88it/s]
63%|██████▎ | 57/90 [00:05<00:03, 8.48it/s]
68%|██████▊ | 61/90 [00:05<00:02, 12.35it/s]
71%|███████ | 64/90 [00:05<00:01, 15.01it/s]
74%|███████▍ | 67/90 [00:05<00:01, 16.15it/s]
77%|███████▋ | 69/90 [00:05<00:01, 13.71it/s]
79%|███████▉ | 71/90 [00:06<00:01, 13.88it/s]
81%|████████ | 73/90 [00:06<00:01, 11.12it/s]
83%|████████▎ | 75/90 [00:06<00:01, 10.09it/s]
86%|████████▌ | 77/90 [00:06<00:01, 10.70it/s]
88%|████████▊ | 79/90 [00:07<00:01, 8.63it/s]
92%|█████████▏| 83/90 [00:07<00:00, 12.84it/s]
94%|█████████▍| 85/90 [00:07<00:00, 8.22it/s]
97%|█████████▋| 87/90 [00:08<00:00, 6.31it/s]
100%|██████████| 90/90 [00:08<00:00, 10.48it/s]
100%|██████████| 3/3 [00:26<00:00, 8.70s/it]