você está aqui: Home  → Arquivo de Mensagens

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

 

 

Opinião dos Leitores

Mateu de Oliveira
29 Nov 2017, 11:15
Atualmente o modulo commands foi removido do python, uma solução é usar o subprocess, e então var = subprocess.getoutput("ifconfig")!!! té mais...
Glaucio Fonseca
01 Nov 2015, 02:10
Rafael muitoo obrigadoo, você não sabe o quanto esse commands.getoutput me ajudo é muito.
Alexandre
02 Mar 2015, 22:02
Ajudou muito, valeu
Igor Iglesias
05 Mar 2014, 15:20
e como ficaria em python 3?
jupiteryast
14 Set 2013, 17:25
Me ajudou muito, valeu.
Raphael
21 Ago 2013, 17:58
Gostei da dica. to precisando disso...

Muito bom vlw..
*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