Re: [Python] Os.popen e comando route add
Spesso mi porto dietro questa funzione in molti script per fare lavori sporchi/veloci: import subprocess, warnings def sh(cmdline): run cmd in a subprocess and return its output. raises RuntimeError on error. p = subprocess.Popen(cmdline, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode != 0: raise RuntimeError(stderr) if stderr: warnings.warn(stderr, RuntimeWarning) return stdout sh(whoami) 'giampaolo\n' sh(blabla) Traceback (most recent call last): File stdin, line 1, in module File _utils.py, line 12, in sh raise RuntimeError(stderr) RuntimeError: /bin/sh: blabla: command not found A partire da python 2.7 puoi usare subprocess.check_output() che però trovo meno comoda: http://docs.python.org/library/subprocess.html#subprocess.check_output --- Giampaolo http://code.google.com/p/pyftpdlib/ http://code.google.com/p/psutil/ Il 15 gennaio 2011 12:27, Paolo Bernardi villa.lo...@tiscali.it ha scritto: 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 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Os.popen e comando route add
Grazie per la dritta Il 17 gennaio 2011 12:47, Giampaolo Rodolà g.rod...@gmail.com ha scritto: Spesso mi porto dietro questa funzione in molti script per fare lavori sporchi/veloci: import subprocess, warnings def sh(cmdline): run cmd in a subprocess and return its output. raises RuntimeError on error. p = subprocess.Popen(cmdline, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) stdout, stderr = p.communicate() if p.returncode != 0: raise RuntimeError(stderr) if stderr: warnings.warn(stderr, RuntimeWarning) return stdout sh(whoami) 'giampaolo\n' sh(blabla) Traceback (most recent call last): File stdin, line 1, in module File _utils.py, line 12, in sh raise RuntimeError(stderr) RuntimeError: /bin/sh: blabla: command not found A partire da python 2.7 puoi usare subprocess.check_output() che però trovo meno comoda: http://docs.python.org/library/subprocess.html#subprocess.check_output --- Giampaolo http://code.google.com/p/pyftpdlib/ http://code.google.com/p/psutil/ Il 15 gennaio 2011 12:27, Paolo Bernardi villa.lo...@tiscali.it ha scritto: 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 ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
[Python] Cercasi mobile/python speaker
Ciao, mi chedevo se qualcuno ha voglia di portare per il codemotion un talk su sviluppo python su mobile, qualcuno che abbia esperienza in tal campo lo dico perche sempre di più si sta creando lavoro su mobile. E python è un linguaggio che per la sua leggerezza (perdonatemi il temine) si sposa benissimo con i sistemi embedded. c'è qualcuno che a marzo ha voglia di scendere a Roma per parlarci di sviluppo mobile in python? Simone NB ASAP perche domani scade la C4P del codemotion, ad oggi ci sono 60 proposte mote su mobile ma nessuna mobile+python che figura ci facciamo? S ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python
Re: [Python] Cercasi mobile/python speaker
a tal proposito, chi va anche solo come spettatore? Il giorno 17 gennaio 2011 20:42, Simone Federici s.feder...@gmail.com ha scritto: Ciao, mi chedevo se qualcuno ha voglia di portare per il codemotion un talk su sviluppo python su mobile, qualcuno che abbia esperienza in tal campo lo dico perche sempre di più si sta creando lavoro su mobile. E python è un linguaggio che per la sua leggerezza (perdonatemi il temine) si sposa benissimo con i sistemi embedded. c'è qualcuno che a marzo ha voglia di scendere a Roma per parlarci di sviluppo mobile in python? Simone NB ASAP perche domani scade la C4P del codemotion, ad oggi ci sono 60 proposte mote su mobile ma nessuna mobile+python che figura ci facciamo? S ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python ___ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python