Python: Execute Comandos no Shell
A execução de comandos no shell com Python é extremamente útil em diversas situações.
Glossário
Por que executar comandos no shell com Python é útil?
A execução de comandos no shell utilizando a linguagem de programação Python pode ser extremamente útil em diversas situações. O shell é uma interface de linha de comando onde é possível interagir com o sistema operacional e executar comandos diretamente. O Python, sendo uma linguagem de programação poderosa e versátil, permite que os desenvolvedores aproveitem essa funcionalidade para automatizar tarefas, controlar aplicativos externos e obter informações do sistema.
Existem várias razões pelas quais executar comandos no shell com Python pode ser benéfico. Vejamos algumas delas:
1. Integração com outros aplicativos:
Ao executar comandos no shell com Python, é possível interagir com outros aplicativos e aproveitar suas funcionalidades. Por exemplo, você pode executar comandos em bancos de dados, manipular arquivos, realizar operações de rede e muito mais.
2. Automação de tarefas:
A execução de comandos no shell com Python permite a automação de tarefas repetitivas. Você pode escrever scripts Python para executar um conjunto de comandos específicos, economizando tempo e esforço. Isso é especialmente útil quando você precisa executar a mesma sequência de comandos várias vezes.
3. Controle do sistema operacional:
Com o Python, é possível controlar o sistema operacional diretamente por meio da execução de comandos no shell. Isso possibilita a criação de aplicativos que interagem com o sistema, realizando tarefas como gerenciamento de processos, leitura e escrita de arquivos, manipulação de diretórios e muito mais.
4. Análise de dados do sistema:
Ao executar comandos no shell com Python, você pode obter informações detalhadas sobre o sistema operacional e seus componentes. Isso é útil para monitorar o desempenho do sistema, coletar dados estatísticos, verificar o uso de recursos e diagnosticar possíveis problemas.



5. Flexibilidade e extensibilidade:
O Python é uma linguagem de programação altamente flexível e extensível. Ao executar comandos no shell com Python, você pode aproveitar a vasta biblioteca de módulos e pacotes disponíveis para realizar uma ampla variedade de tarefas. Além disso, é possível criar suas próprias funções e classes para estender ainda mais as capacidades do Python.
Como executar comandos no shell com Python?
A execução de comandos no shell com Python é bastante simples e pode ser realizada por meio do uso de algumas bibliotecas específicas. Vejamos algumas opções comumente utilizadas:
1. O módulo “os”:
O módulo “os” fornece uma série de funções relacionadas ao sistema operacional, incluindo a execução de comandos no shell. Para executar um comando, basta utilizar a função “os.system()” e passar o comando como uma string. Por exemplo:
import os
os.system("ls -l")
2. O módulo “subprocess”:
O módulo “subprocess” fornece uma interface mais poderosa para a execução de comandos no shell. Ele permite maior controle sobre a execução do comando, permitindo redirecionamento de entrada e saída, captura de erros, entre outras funcionalidades. Veja um exemplo de uso:
import subprocess
output = subprocess.check_output("ls -l", shell=True)
print(output.decode("utf-8"))
3. O módulo “sh”:
O módulo “sh” é uma biblioteca de alto nível que facilita a execução de comandos no shell com Python. Ele fornece uma sintaxe mais amigável e intuitiva, tornando o código mais legível. Veja um exemplo de uso:
from sh import ls
output = ls("-l")
print(output)
Independentemente da biblioteca escolhida, é importante lembrar de tomar precauções para evitar vulnerabilidades de segurança, como a validação adequada dos comandos a serem executados e a sanitização de entradas de usuário.
Melhores práticas para executar comandos no shell com Python
Ao executar comandos no shell com Python, é recomendado seguir algumas melhores práticas para garantir a eficiência, segurança e legibilidade do código. Aqui estão algumas dicas:
- Utilize variáveis para armazenar os comandos: Em vez de passar diretamente o comando como uma string, é recomendado utilizar variáveis para armazenar os comandos. Isso torna o código mais legível e facilita a manutenção futura.
- Utilize métodos seguros para executar comandos: Evite o uso do método “os.system()”, que pode apresentar vulnerabilidades de segurança. Em vez disso, utilize métodos mais seguros, como “subprocess.check_output()” ou “sh”.
- Trate exceções adequadamente: Ao executar comandos no shell com Python, é importante tratar as exceções de forma adequada. Isso inclui capturar erros e lidar com eles de maneira apropriada, fornecendo mensagens de erro claras e instruções para o usuário.
- Valide e sanitize as entradas: Antes de executar um comando no shell com Python, é importante validar e sanitize as entradas fornecidas pelo usuário. Isso ajuda a evitar ataques de injeção de código malicioso e garante a segurança do sistema.
- Documente o código: Sempre documente o código que executa comandos no shell com Python. Isso torna o código mais fácil de entender e permite que outros desenvolvedores possam utilizá-lo e mantê-lo no futuro.
Exemplos de uso de Python para executar comandos no shell:



- Listando arquivos em um diretório:
- Criando um arquivo:
- Obtendo informações do sistema:
- Executando um comando do sistema operacional:
import os
files = os.listdir(".")
for file in files:
print(file)
import subprocess
subprocess.run("touch novo_arquivo.txt", shell=True)
from sh import uname
output = uname("-a")
print(output)
import subprocess
subprocess.call(["echo", "Olá, mundo!"])
Esses são apenas alguns exemplos básicos de uso do Python para executar comandos no shell. A linguagem oferece uma ampla gama de recursos e possibilidades, permitindo que você automatize tarefas, controle o sistema operacional e obtenha informações detalhadas do sistema.
Conclusão
A execução de comandos no shell com Python é uma ferramenta poderosa para automatizar tarefas, interagir com outros aplicativos e obter informações do sistema operacional. Com as bibliotecas e métodos corretos, é possível executar comandos de forma segura e eficiente, aproveitando todas as capacidades oferecidas pelo Python.
Ao utilizar o Python para executar comandos no shell, é importante seguir as melhores práticas, como utilizar variáveis para armazenar comandos, tratar exceções adequadamente e validar e sanitize as entradas. Além disso, documentar o código e utilizar bibliotecas de alto nível, como “subprocess” ou “sh”, pode facilitar o desenvolvimento e a manutenção do código.
Com o conhecimento adequado e prática, você poderá aproveitar ao máximo essa funcionalidade do Python, tornando seu trabalho mais eficiente e produtivo. Experimente executar comandos no shell com Python e descubra todo o potencial dessa linguagem de programação.
A Awari é a melhor plataforma para aprender sobre ciência de dados no Brasil.
Aqui você encontra cursos com aulas ao vivo, mentorias individuais com os melhores profissionais do mercado e suporte de carreira personalizado para dar seu próximo passo profissional e aprender habilidades como Data Science, Data Analytics, Machine Learning e mais.
Já pensou em aprender de maneira individualizada com profissionais que atuam em empresas como Nubank, Amazon e Google? Clique aqui para se inscrever na Awari e começar a construir agora mesmo o próximo capítulo da sua carreira em dados.


