Armazenar conteúdo de comando do sistema em variável [RESOLVIDO]

1. Armazenar conteúdo de comando do sistema em variável [RESOLVIDO]

Thiago Giroto Milani
thiagogmilani

(usa Debian)

Enviado em 19/11/2016 - 14:12h

Boa Tarde amigos,
estou tentando armazenar o conteúdo de um comando do sistema em uma variável porém não estou conseguindo, quando rodo o script ele não da erro porém a variável quando dou print ela está vazia o comando que estou executando é o seguinte.


import os
import sys
destino = (os.system("host uol.com.br | awk '/has address/ {print $4}'"))
print ('{'+destino+'}')


o que estou fazendo de errado?

obrigado.



  


2. Re: Armazenar conteúdo de comando do sistema em variável

Jeffersson Abreu
ctw6av

(usa Nenhuma)

Enviado em 19/11/2016 - 17:06h

Se quiser fazer assim use o modulo "subprocess" que é bem melhor que o "os" para isso. Tem um jeito mais portável de fazer isso, veja:
import socket

out, addresses = [], socket.getaddrinfo('uol.com.br', 80)

for address in addresses:
if address[-1][0] not in out:
out.append(address[-1][0])
print(address[-1][0])


Não é um dos melhores mas não usa comandos específicos do sistema. Todos os destinos IPV4 e IPV6 vão estar na váriável out que é uma lista.

Boa sorte!



______________________________________________________________________
OS: Biebian
Kernel: x86_64 3.5.2-amd64
Resolution: 1320x768
CPU: Intel Core i3-4005U CPU @ 1.7GHz
RAM: 3852MiB
Distro: http://biebian.sourceforge.net/


3. Re: Armazenar conteúdo de comando do sistema em variável [RESOLVIDO]

Thiago Giroto Milani
thiagogmilani

(usa Debian)

Enviado em 20/11/2016 - 12:10h

Bom Dia ctw6av

obrigado pela ajuda, funcionou perfeito para o que eu queria, até melhor, pois trouxe o IPv6 tmbm.


obrigado.







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts