Acessar


Esqueceu a senha?
Cadastrar
 

Dica: Manipulando comandos Linux com Python!


Colaboração: Rafael Henrique da Silva Correia

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!

Fonte: www.dicas-l.com.br


  • Python.org
  • Zope
  • Plone
  • Ubuntu
  • Debian
  • Python Brasil
  • Tchezope
  • Django Brasil