Como executar comandos Unix em seu programa Python

Unix é um sistema operacional que foi desenvolvido por volta de 1969 no AT&T Bell Labs por Ken Thompson e Dennis Ritchie. Existem muitos comandos Unix interessantes que podemos usar para realizar diferentes tarefas. A questão é: podemos usar esses comandos diretamente em um programa Python? É isso que vou mostrar neste tutorial.

O comando Unix ls lista todos os arquivos no diretório. Se você colocar ls como está em um script Python, isso é o que você obterá quando executar o programa:

Isso mostra que o interpretador Python está tratando ls como uma variável e requer que ela seja definida (ou seja, inicializada), e não a tratou como um comando Unix.

os.system()

Uma solução para esse problema é usar os.system() do Python os módulo.

Conforme mencionado na documentação, os.system():

Executa o comando (uma string) em um subshell. Isso é implementado chamando a função padrão C system() e tem as mesmas limitações.

Assim, podemos executar o ls comando em Python da seguinte forma:

Isso retornará a lista de arquivos em seu diretório atual, que é onde seu .py programa está localizado.

Vamos dar outro exemplo. Se você deseja retornar a data e hora atuais, você pode usar o comando Unix date do seguinte modo:

No meu caso, isso foi o que obtive como resultado do script acima:

Tue May 24 17:29:20 CEST 2016

ligar()

Embora os.system() funciona, não é recomendado, pois é considerado um pouco antigo e obsoleto. Uma solução mais recomendada é a do Python subprocess módulo call(args) função. Conforme mencionado na documentação sobre esta função:

Execute o comando descrito por args. Aguarde a conclusão do comando e, em seguida, retorne o atributo returncode.

Se quisermos executar o ls Comando Unix usando este método, podemos fazer o seguinte:

Vamos ver como podemos retornar a data usando o subprocess módulo, mas vamos tornar o exemplo mais interessante.

O exemplo acima pode ser executado de forma mais simples usando check_output()do seguinte modo:

A saída dos scripts acima é:

It is Tue May 24 19:14:22 CEST 2016

Os exemplos acima mostram a flexibilidade no uso de diferentes subprocess funções, e como podemos passar os resultados para variáveis ​​para realizar outras operações.

Conclusão

Como vimos neste tutorial, comandos Unix podem ser chamados e executados usando o subprocess módulo, que oferece muita flexibilidade ao trabalhar com comandos Unix através de suas diferentes funções. Você pode aprender mais sobre este módulo e suas diferentes funções na documentação do Python.

Originally posted 2022-07-13 17:21:11.

Deixe uma resposta