Chame o programa externo em Python

  1. Use a função os.system() para executar comandos de sistema externo em Python
  2. Use a função os.popen() para executar comandos de sistema externo em Python
  3. Use a função subprocess.Popen() para executar comandos de sistema externo em Python
  4. Use a função subprocess.call() para executar comandos de sistema externo em Python
  5. Use a função subprocess.run() para executar comandos de sistema externo em Python

Em Python, temos diferentes módulos e funções disponíveis para comunicar e obter respostas do sistema operacional. Python também possui métodos que podem executar programas externos.

Neste tutorial, discutiremos como chamar um programa externo em Python.

Use a função os.system() para executar comandos de sistema externo em Python

O módulo os em Python pode interagir com o sistema operacional do dispositivo e tem funções disponíveis para executar comandos shell. A função system() implementa um comando, passado a ele como uma string, em um subshell. Ele retorna o status de saída do shell, que o sistema operacional retorna após executar o comando fornecido. Ele permite executar vários comandos ao mesmo tempo e chamar programas externos, não comandos do shell.

Por exemplo,

import os
os.system("echo Hello World")

Use a função os.popen() para executar comandos de sistema externo em Python

Outra função do módulo os para executar comandos de programas externos é a função popen(). Este método abre um tubo relacionado ao comando. É semelhante à função os.system(), mas fornece um objeto do tipo arquivo que ajuda nas operações de entrada e saída relacionadas ao comando. Podemos especificar o modo de arquivo para o arquivo e o tamanho do buff como o parâmetro na função.

Por exemplo,

import os
os.popen("echo Hello World")

Observe que existem 4 tipos de função popen() disponíveis no Python 2. A diferença entre eles está na saída dessas 4 funções.

Use a função subprocess.Popen() para executar comandos de sistema externo em Python

O módulo subprocess é semelhante ao módulo os e tem funções e métodos melhorados para chamar programas externos. O Popen é uma aula e não um método. É um pouco complicado usar isso devido a vários parâmetros que precisam ser especificados junto com o comando necessário. Ele combina todas as 4 funções os.popen() em uma. Ele também executa o programa externo como um processo separado. O código a seguir mostra como usar isso.

import subprocess
subprocess.Popen("echo Hello World", shell=True, stdout=subprocess.PIPE).stdout.read()

Use a função subprocess.call() para executar comandos de sistema externo em Python

A função call() é uma melhoria da função popen(). No entanto, ao contrário da função popen(), ela aguarda a execução do comando antes de fornecer o código de retorno. Passamos o comando como um argumento para a função.

Por exemplo,

import subprocess
subprocess.call("echo Hello World", shell=True)  

Use a função subprocess.run() para executar comandos de sistema externo em Python

No Python v3.5 e superior, a função run() é mais frequentemente usada para executar comandos de programa. Ele retorna um objeto de processo concluído após a execução do comando, passado para a função como um parâmetro.

Por exemplo,

import subprocess
print(subprocess.run("echo Hello World", shell=True))  

Observe que o módulo subprocess é preferível ao módulo os para executar comandos externos em Python.