[Python] Os.popen e comando route add

Paolo Bernardi villa.lobos a tiscali.it
Sab 15 Gen 2011 12:27:37 CET


Tra le altre cose, se vuoi restare aggiornato, ti consiglio di dare
un'occhiata al modulo subprocess, particolarmente alla sezione su come
rimpiazzare le chiamate os.popen*:

http://docs.python.org/library/subprocess.html#replacing-os-popen-os-popen2-os-popen3

Con la popen, ad esempio, mi  capitato di fare qualcosa di simile:

p = subprocess.Popen(['axel', '-o', file, self.url], shell=False,
stdout=subprocess.PIPE)
line = p.stdout.readline()
while line != None and line != '' and not p.poll():
    [...]
    line = p.stdout.readline()

In questo caso ovviamente mi serviva l'output riga per riga (man mano
che axel avanzava), ma puoi anche leggere tutto in blocco.

Paolo

On Fri, 2011-01-14 at 12:03 +0100, Stefano Dal Pra wrote:
> Ciao,
> prova con os.popen3 :
> stdin,stdou,stderr = os.popen("ping 151.1.1.1")
> 
> dovresti scoprire che il SIOCADDRT compare con stderr.readline() ...
> 
> Stefano
-------------- parte successiva --------------
Un allegato non testuale  stato rimosso....
Nome:        signature.asc
Tipo:        application/pgp-signature
Dimensione:  490 bytes
Descrizione: This is a digitally signed message part
URL:         <http://lists.python.it/pipermail/python/attachments/20110115/68e26ca1/attachment.pgp>


Maggiori informazioni sulla lista Python