Python: Inicie um novo prompt de comando no Windows e espere que ele termine / saia

Eu não entendo porque é tão difícil fazer isso no Windows.

Eu quero gerar um monte de janelas de prompt de comando que irá executar outros scripts. A razão pela qual eu quero isso é para que eu possa ver toda a saída de cada script ordenadamente (se eu tiver apenas threads / subprocessos na janela principal, não consigo visualizar toda a saída corretamente). Eu também não quero registrar a saída porque é principalmente para visualizar as barras de progresso, que realmente não funcionam com arquivos de log.

Assim, partes individuais dos meus requisitos funcionam, mas não juntas:

os.system("start cmd /c {command here}")     # Launches in new command prompt, closes when done

No entanto, o sistema OS não me deixa esperar até que o comando seja concluído (desde que o início seja o comando real, no segundo em que ele é aberto, o novo prompt de comando é "concluído")

Da mesma forma, se eu tentar:

p = subprocess.Popen(["start", "cmd", "/k", "{command here}], shell = True) # Needs to be shell since start isn't an executable, its a shell cmd
p.wait()    # I can wait until finished (although it too finishes after start finishes)

Então, como faço isso? Eu li em algum lugar que uma solução poderia ser usar processgroup mas é apenas unix .... ou algo parecido

Ou, se você tiver uma maneira simples de exibir a saída de todos os subprocessos em uma única janela, não será preciso abrir um novo prompt de comando e simplesmente usar encadeamentos. Isso funciona também, mas se eu tiver digamos 4 threads fazendo download de alguma coisa e exibindo uma barra de progresso, além de gerar outras informações, não sei como exibir isso de uma maneira que possa ser lida (assim como evitá-las todas colidindo com entre si).

PS: Isso é no Windows Vista. PPS: Preferiria preferencialmente uma solução que funcionasse no Windows, Linux e Mac. Estou focando no Windows por enquanto, mas gostaria de uma solução que funcione para todos os três, e sei que o Windows é o mais exigente. Gostaria apenas de substituir "o início cmd / c" para o comando adequado do sistema operacional.

questionAnswers(4)

yourAnswerToTheQuestion