Este código é projetado para executar programas Python em novos terminais separados, de forma assíncrona. Vou explicar passo a passo o que cada parte do código faz.
1. Importação do Módulo subprocess
import subprocess
O módulo subprocess
permite criar e gerenciar processos do sistema operacional a partir de um programa Python. É usado aqui para iniciar os programas Python em novas janelas de terminal.
2. Função executar_programa
def executar_programa(caminho_programa): try: # Executa o programa em uma nova janela de terminal subprocess.Popen( ["python", caminho_programa], creationflags=subprocess.CREATE_NEW_CONSOLE ) print(f"Programa {caminho_programa} iniciado com sucesso.") except Exception as e: print(f"Erro ao iniciar o programa {caminho_programa}: {e}")
Esta função é responsável por executar um programa Python em uma nova janela de terminal:
Argumento
caminho_programa
: O caminho absoluto do script Python que você deseja executar.-
subprocess.Popen
: Inicia um novo processo no sistema operacional.- A lista
["python", caminho_programa]
é o comando que será executado no terminal. O primeiro item "python" é o interpretador Python e o segundo itemcaminho_programa
é o script Python a ser executado. -
creationflags=subprocess.CREATE_NEW_CONSOLE
: Essa flag cria uma nova janela de terminal para o processo em vez de rodá-lo na janela de terminal atual.
- A lista
try
eexcept
: O blocotry
tenta executar o programa. Se ocorrer algum erro (como o caminho incorreto do script), o blocoexcept
captura a exceção e imprime uma mensagem de erro.
3. Função main
def main(): # Caminhos para os programas que você deseja executar programa1 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaEquiti\eaEquiti108.py" programa2 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaEquiti690\eaEquiti690.py" programa3 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaFtmo\eaFtmo.py" programa4 = r"C:\Users\hbvbr\Documents\DEV\AlgotradingCopia\eaEquiti224\eaEquiti224.py" # Executa cada programa em um terminal separado executar_programa(programa1) executar_programa(programa2) executar_programa(programa3) executar_programa(programa4)
Na função main
:
Definição de caminhos para os programas: Aqui, quatro variáveis são definidas (
programa1
,programa2
,programa3
,programa4
) com os caminhos absolutos dos scripts Python que você deseja executar. Os caminhos são escritos como strings brutas (prefixados comr
) para evitar problemas com barras invertidas.Chamada à função
executar_programa
: Para cada programa, a funçãoexecutar_programa
é chamada. Cada script Python é executado em uma nova janela de terminal.
4. Execução Condicional if __name__ == "__main__":
if __name__ == "__main__": main()
-
if __name__ == "__main__":
: Essa condição verifica se o arquivo Python está sendo executado diretamente (e não importado como módulo em outro script). Se for executado diretamente, a funçãomain()
será chamada e os programas serão iniciados.
Resumo do Fluxo:
- O script começa executando a função
main
. - A função
main
chamaexecutar_programa
para cada um dos quatro scripts, passando os caminhos dos programas. - A função
executar_programa
executa cada script Python em uma nova janela de terminal, usandosubprocess.Popen
. - Se houver algum erro ao tentar executar qualquer programa, o erro será capturado e uma mensagem será exibida.
Como funciona no sistema operacional:
- O
subprocess.Popen
comCREATE_NEW_CONSOLE
vai abrir uma nova janela do terminal do sistema operacional (no Windows, geralmente ocmd
ouPowerShell
) e executar o programa Python especificado em cada uma dessas janelas.
Esse é o funcionamento básico do código! Se precisar de mais detalhes ou ajustes, fique à vontade para perguntar.
Top comments (0)