Formulário de contato

Nome

E-mail *

Mensagem *

Imagem

Como executar múltiplos scripts Python com subprocess

Como executar múltiplos scripts Python com subprocess

Publicado por em

@CanalQb

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.py será executado primeiro.
  • Quando ele terminar, script2.py será 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 python seja reconhecido pelo sistema operacional.
  • Você pode também utilizar sys.executable para 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.

Marcadores: Blogger IA Python Script Sistemas Tutorial

© abril 14, 2023 CanalQb — Python, Scripts, Automação, Airdrops e Criptomoedas | Web3 e Tech na Prática

Comentários