Quero atribuir a saída de um comando que eu corro usando os.system
a uma variável e impedir que ela seja exibida na tela. Mas, no código abaixo, a saída é enviada para a tela e o valor impresso var
é 0, o que eu acho que significa se o comando foi executado com êxito ou não. Existe alguma maneira de atribuir a saída do comando à variável e também impedir que ela seja exibida na tela?
var = os.system("cat /etc/services")
print var #Prints 0
os.system
(nem os.popen
, de acordo com a resposta que você aceitou): use subprocess.Popen
, é muito melhor!
subprocess.Popen
- basta adicionar shell=True
!
shell=True
é (geralmente) uma péssima idéia! Você tem que estar muito certo de que você está executando :)