Acesso direto ao conteúdo
Logotipo Dicas-L, por Ricardo Burile

Busca

Visite também: Segurança Linux ·  UnderLinux ·  VivaOLinux ·  LinuxSecurity ·  NoticiasLinux ·  BR-Linux ·  SoftwareLivre.org ·  [mais]   
 

Você está aqui: Home  → Arquivo Dicas-L

 

Assine a Lista Dicas-L

Receba diariamente por email as dicas
de informática publicadas neste site
Para se descadastrar, clique aqui.

Manipulando comandos Linux com Python!

Colaboração: Rafael Henrique da Silva Correia

Data de Publicação: 03 de Outubro de 2007

Hoje quando escrevi esta dica a dica do dia era a dica do Bruno Magalhães de Souza, ele ensinava a usar comandos do sistema operacional em php, pois agora venho a vocês para ensinar a mesma coisa, mas com cgi mas especificamente Python! A um tempo atrás rachei minha cabeça para tentar descobrir uma forma de pegar a saída de uma comando do Linux em Python, hoje consigo tanto executá-lo como conseguir sua saída ;) !

É o seguinte:

Abrindo o interpretador Python:

  asm:/home/rafael# python
  Python 2.4.4 (#2, Apr  5 2007, 20:11:18)
  [GCC 4.1.2 20061115 (prerelease) (Debian 4.1.1-21)] on linux2
  Type "help", "copyright", "credits" or "license" for more information.
  >>>import os
  >>>import commands

Agora explicarei esses dois módulos importados...

  1. O módulo os tem logicamente relação com seu sistema operacional
  2. E o módulo commands logicamente tem relação com os comandos deste sistema (seja qualquer um que rode Python)

Aí vem...

  >>>os.system("ls")

Este método system chamará o comando ls e o executará! Agora vem o detalhe ao qual demorei um tempo pra descobrir...

  >>>var = os.system("ls")

Esta variável var pegará o return do comando executado (0 se deu certo o comando e diferente de 0 se deu errado)! Testem...

  >>>print var

Aí pensei cá com meus neurônios, e como pego o output?? Aí que tive a idéia de pedir um help para o meu professor e veio a saída (literalmente hehehe)...

  >>>var = commands.getoutput("ifconfig")

Aí agora sim! Agora eu pego a variável como uma string verifiquem:

  >>>type(var)
  <type 'str'>
  
  >>>print var

Bingoo! Bom aí eu faço o que eu quiser com a saída, transformo em lista, gravo num arquivinho texto, etc! Então podem brincar a vontade :)! Dá pra pegar as saídas dos comandos pela web também via apache! Então tem n brincadeiras só falta brincar agora! Boa sorte em seus testes!

Uma boa saída no python é consultar o dir()...

  >>>dir(commands)
  ['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'getoutput', 'getstatus', 'getstatusoutput', 'mk2arg', 'mkarg']

Ele te mostrará tudo que é possível fazer com aquilo (todos os métodos), outra opção é o help()...

  >>>help(commands)

Que é tipo de um man do Python :)... flw!

Veja a relação completa dos artigos de Rafael Henrique da Silva Correia

Formato PDF
Newsfeed RSS
Formato para impressão
PDF RSS Imprimir

Referências Adicionais

Referências adicionais sobre os assuntos abordados neste site podem ser encontradas em nossa Bibliografia.

Avalie esta dica

  • Currently 3.05/5
  • 1
  • 2
  • 3
  • 4
  • 5

Avaliação: 3.1 /5 (1440 votos)

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script
Lan University

Submarino.com.br

Encontre imóveis, apartamentos e casas a venda no Imobilien
Saiba mais

 

 

Procure pela casa ou apartamento ideal à venda ou para aluguel na busca inteligente do Imohoo
Buscar imóveis