Uncategorized

Python – Como chamar um comando externo?

Muitas vezes é necessário que o Python interaja com o sistema operacional do computador onde ele está sendo executado. Por exemplo, para ter informações sobre as partições do disco rígido. Para que isso aconteça, é necessário criar um comando externo, que invoca a informação ou programa que se deseja, diretamente do SO.

Neste post vamos mostrar um módulo do Python que permite que processos sejam criados, e estes executam programas externos ao código Python que está sendo escrito. Ele também permite que a saída deste programa na tela seja executada como se estivesse num shell normal. Este é o módulo subprocess, que oferece várias opções para executar programas. Vamos mostrar aqui duas delas:

Python – A opção call()

Esta opção nos mostra na tela as informações que o programa externo gerou, mas não como uma entrada que possa ser manipulada posteriormente pelo nosso programa em Python. O valor que a função call() retorna dentro do programa em Python é somente o status da execução do programa externo.

Para podermos manipular os dados deste programa externo, devemos utilizar a função  check_output(). Um exemplo utilizando esta função no lugar de call() é mostrado abaixo:

Este exemplo é a chamada de um programa em Java, cujas informações serão manipuladas depois em Python, sendo fornecidos pelo return.

Python – A opção Popen ()

Ele oferece bastante flexibilidade para que os desenvolvedores sejam capazes de lidar com casos mais complexos que não são cobertos pelas funções mais simples. O subprocess.Popen() executa um programa filho num novo processo. No Unix, tem um comportamento semelhante ao os.execvp()- na execução deste programa. Já no Windows, usa a função CreateProcess().

Estas são algumas das formas de se chamar um comando externo no Python. Conhece mais alguma? Compartilhe conosco na área de comentários abaixo!

Caso queria procurar mais dicas, pesquise nossos vídeos sobre Python. Abaixo estão alguns exemplos:

Aerolith.org – (parte 1) 

URL Shortener

Também pode seguir alguns de nossos broadcasters que programam em Python, como os abaixo:

writkasPython dicas comando externo livecoding.tv

 

 

Python dicas comando externo livecoding.tv jakeinmn

 

 

Outra maneira legal de descobrir mais coisas interessantes sobre Python é acessar nossa página de projetos

Avatar
About author

I, Dr. Michael J. Garbade is the co-founder of the Education Ecosystem (aka LiveEdu), ex-Amazon, GE, Rebate Networks, Y-combinator. Python, Django, and DevOps Engineer. Serial Entrepreneur. Experienced in raising venture funding. I speak English and German as mother tongues. I have a Masters in Business Administration and Physics, and a Ph.D. in Venture Capital Financing. Currently, I am the Project Lead on the community project -Nationalcoronalvirus Hotline I write subject matter expert technical and business articles in leading blogs like Opensource.com, Dzone.com, Cybrary, Businessinsider, Entrepreneur.com, TechinAsia, Coindesk, and Cointelegraph. I am a frequent speaker and panelist at tech and blockchain conferences around the globe. I serve as a start-up mentor at Axel Springer Accelerator, NY Edtech Accelerator, Seedstars, and Learnlaunch Accelerator. I love hackathons and often serve as a technical judge on hackathon panels.