import asyncio
import random
arquivos = [
{"nome":'arquivo_1.txt', "tamanho": 0, "baixado": 0},
{"nome":'arquivo_2.txt', "tamanho": 0, "baixado": 0},
{"nome":'arquivo_3.txt', "tamanho": 0, "baixado": 0},
{"nome":'arquivo_4.txt', "tamanho": 0, "baixado": 0},
{"nome":'arquivo_5.txt', "tamanho": 0, "baixado": 0},
]
velocidade = 5
async def faz_download(arquivo):
tamanho = random.randint(10, 50)
baixado = 0
arquivo['tamanho'] = tamanho
print(f' Iniciando download de {arquivo['nome']} (tamanho: {arquivo['tamanho']} MB)...')
n = 1
while arquivo['baixado'] < arquivo['tamanho']:
await asyncio.sleep(1)
baixado = baixado + velocidade
arquivo['baixado'] = baixado
print(f"[{n}s] {arquivo['nome']} : {arquivo['baixado']} MB baixados")
n += 1
print(f"[{arquivo['nome']}] concluído !")
async def main():
tasks = [asyncio.create_task(faz_download(arquivo)) for arquivo in arquivos]
await asyncio.gather(*tasks)
asyncio.run(main())