|
Executando múltiplos scripts com Python |
|
| @CanalQb | ||
Em projetos de automação ou sistemas modulares, pode ser necessário executar vários scripts Python em sequência. Isso é bastante comum quando você divide funcionalidades em arquivos diferentes e precisa coordenar sua execução. Uma das formas mais simples de fazer isso é usando o módulo subprocess da biblioteca padrão do Python.
Usando subprocess.call() para executar scripts
A função subprocess.call() permite executar comandos externos — incluindo outros scripts Python — diretamente do sistema operacional. Essa função é síncrona, ou seja, o Python aguardará a conclusão de cada script antes de continuar para o próximo.
Exemplo prático: chamando dois scripts
O exemplo abaixo mostra como chamar dois scripts diferentes de um terceiro script:
import subprocess
# Chama o primeiro script
subprocess.call(["python", "script1.py"])
# Chama o segundo script
subprocess.call(["python", "script2.py"])
No exemplo acima:
script1.pyserá executado primeiro.- Quando ele terminar,
script2.pyserá executado na sequência.
Esse tipo de execução garante que o segundo script só será iniciado após o término completo do primeiro, o que é ideal quando há dependência de dados ou processos entre eles.
Cuidados importantes
Alguns pontos devem ser levados em conta para evitar falhas:
- Os scripts chamados devem estar no mesmo diretório do script principal ou você deve fornecer o caminho completo.
- Garanta que o ambiente Python esteja corretamente configurado e que o comando
pythonseja reconhecido pelo sistema operacional. - Você pode também utilizar
sys.executablepara tornar o código mais portável, chamando o interpretador Python usado para executar o script principal:
import subprocess
import sys
subprocess.call([sys.executable, "script1.py"])
subprocess.call([sys.executable, "script2.py"])
Essa abordagem é recomendada principalmente em ambientes virtuais ou quando o sistema possui múltiplas versões do Python.
Alternativas: execução assíncrona
Se você deseja executar os dois scripts ao mesmo tempo, sem que um precise esperar pelo outro, você pode usar subprocess.Popen():
import subprocess
# Executa os dois scripts simultaneamente
processo1 = subprocess.Popen(["python", "script1.py"])
processo2 = subprocess.Popen(["python", "script2.py"])
# Aguarda a conclusão de ambos
processo1.wait()
processo2.wait()
Com isso, os scripts são iniciados ao mesmo tempo e o script principal só seguirá quando ambos forem concluídos.
Conclusão
Usar o módulo subprocess é uma maneira robusta de gerenciar múltiplos scripts Python dentro de um fluxo de execução. Ele permite controle total da ordem e simultaneidade, além de possibilitar a captura de saídas, manipulação de erros e monitoramento do status de execução.
Para mais informações técnicas, você pode acessar a documentação oficial do Python sobre subprocess.

Comentários
Comente só assim vamos crescer juntos!