Wednesday, October 3, 2007

Manipulação de comandos linux com Python!!! :D

Vamos olhar a forma de execução e captura das saídas de comandos linux.

carrasco@laptop:~$ python
Python 2.5.1 (r251:54863, May 2 2007, 16:56:35)
[GCC 4.1.2 (Ubuntu 4.1.2-0ubuntu4)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> import commands
>>>

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)

Executando um comando.
>>>os.system("ls")
isso apenas executa e mostra o comando retornando 0(zero) caso tenha dado certo ou diferente de 0(zero) caso contrário. Isso quer dizer que se fizermos:
>>>value = os.system("ls")
vai fazer com que value receba apenas zero ou diferente de zero.

Para capturar uma saída de um comando é necessário utilizar o método getoutput do import commands que fizemos acima, para listar os métodos desse módulo fazemos:
>>>dir(commands)
['__all__', '__builtins__', '__doc__', '__file__', '__name__', 'getoutput', 'getstatus', 'getstatusoutput', 'mk2arg', 'mkarg']

Assim, podemos fazer:
>>>value = commands.getoutput(''ls'')
>>>print value

pronto, agora é só usar um pouco a imaginação......

2 comments:

Anonymous said...

Putz, eu vou ter q fazer tudo isso pra pegar uma saída do ls =P
Prefiro o bom e velho bash e sua simplicidade XD

Anonymous said...

Good for people to know.