Como faço para obter dados de stdin usando os.system ()
Pergunta
O único método confiável que eu a encontrei para usar um script para texto para download da wikipedia é com a onda. Até agora, a única maneira que tenho para fazer isso é chamar os.system()
. Mesmo que a saída seja exibido adequadamente no shell python eu não consigo para a função que ele retorne qualquer coisa que não seja o código de saída (0
). Alternadamente alguém poderia mostrar ser como usar corretamente urllib
.
Solução
A partir Dive into Python:
import urllib
sock = urllib.urlopen("http://en.wikipedia.org/wiki/Python_(programming_language)")
htmlsource = sock.read()
sock.close()
print htmlsource
Isso irá imprimir o código fonte para o artigo Python Wikipedia. Eu sugiro que você dê uma olhada na Dive into Python para mais detalhes.
Exemplo usando urllib2 do Python Library Reference:
import urllib2
f = urllib2.urlopen('http://www.python.org/')
print f.read(100)
Edit: Além disso, você pode querer dar uma olhada wget
Outras dicas
Respondendo a pergunta, Python tem um módulo de subprocesso que lhe permite interagir com processos gerados http: //. docs.python.org/library/subprocess.html#subprocess.Popen
Ele permite que você a ler a saída padrão para o processo invocado, e até mesmo enviar itens para o stdin.
No entanto, como você disse urllib é uma opção muito melhor. se você procurar stackoverflow eu tenho certeza que você vai encontrar pelo menos 10 outras questões relacionadas ...
Como uma alternativa para urllib, você poderia usar o libcurl Python ligações .