[Python] leggere lo standard output di un programma esterno

2012-05-30 Thread Matteo Perini

Ciao a tutti,
scrivo per chiedere un consiglio.
Avrei bisogno di importare lo standard output di un programma c++ nel 
mio software (in python).

Attualmente ho risolto con queste due righe:

import commands

x = commands.getoutput('./prova')

e il tutto funziona.
La domanda è:
Ci sono altri metodi per avere questo stesso effetto senza importare la 
libreria commands?
Forse la domanda sembra sciocca ma volevo capire se mi stò legando ad 
una libreria che posso evitare o se invece usare commands è la strda più 
indicata.

Grazie
Ciao
Matteo

___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] leggere lo standard output di un programma esterno

2012-05-30 Thread Giovanni Marco Dall'Olio
2012/5/30 Matteo Perini 

> Ciao a tutti,
> scrivo per chiedere un consiglio.
> Avrei bisogno di importare lo standard output di un programma c++ nel mio
> software (in python).
>


Nelle ultime versioni di python (>2.6) tutti i moduli per eseguire comandi
esterni sono stati raccolti nella libreria subprocess.
Leggi per esempio il warning in rosso nella documentazione di commands
http://docs.python.org/library/commands.html , o PEP 0324
http://www.python.org/dev/peps/pep-0324/

Nel tuo caso la sintassi di subprocess è molto simile a quella di commands,
ovvero:

$: myoutput = subprocess.check_output('ls', '-a')
$: print myoutput






> Attualmente ho risolto con queste due righe:
>
> import commands
>
> x = commands.getoutput('./prova')
>
> e il tutto funziona.
> La domanda è:
> Ci sono altri metodi per avere questo stesso effetto senza importare la
> libreria commands?
> Forse la domanda sembra sciocca ma volevo capire se mi stò legando ad una
> libreria che posso evitare o se invece usare commands è la strda più
> indicata.
> Grazie
> Ciao
> Matteo
>
> __**_
> Python mailing list
> Python@lists.python.it
> http://lists.python.it/**mailman/listinfo/python
>



-- 
Giovanni Dall'Olio, phd student
IBE, Institut de Biologia Evolutiva, CEXS-UPF (Barcelona, Spain)

My blog on bioinformatics: http://bioinfoblog.it
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] leggere lo standard output di un programma esterno

2012-05-30 Thread Lorenzo Sutton

On 30/05/12 18:57, Giovanni Marco Dall'Olio wrote:

2012/5/30 Matteo Perini mailto:perini.mat...@gmail.com>>

Ciao a tutti,
scrivo per chiedere un consiglio.
Avrei bisogno di importare lo standard output di un programma c++
nel mio software (in python).



Nelle ultime versioni di python (>2.6) tutti i moduli per eseguire
comandi esterni sono stati raccolti nella libreria subprocess.
Leggi per esempio il warning in rosso nella documentazione di commands
http://docs.python.org/library/commands.html , o PEP 0324
http://www.python.org/dev/peps/pep-0324/

Nel tuo caso la sintassi di subprocess è molto simile a quella di
commands, ovvero:

$: myoutput = subprocess.check_output('ls', '-a')
$: print myoutput


Su una macchina che era bloccata a python 2.5 avevo fatto così (scusate 
l'inglese):


http://bpaste.net/show/30444/

Lorenzo.
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] MAC e python

2012-05-30 Thread Giampaolo Rodolà
Il 23 maggio 2012 16:16, Daniele Varrazzo  ha scritto:
> On Wed, 23 May 2012 15:52:55 +0200, Fabrizio Mancini wrote:
>
>> p.s. spesso da anche problemi con la compilazione delle librerie
>> client
>
>
> La mia esperienza come maintainer di psycopg lo conferma: gli utenti OSX che
> non riescono a compilare il modulo sono il più grande dito al cu*o che
> esista. A confronto debuggare bug sul multithreading è piacevole come
> passeggiata in un prato. Ogni release di un gatto nuovo rompe il build in
> nuovi ed entusiasmanti modi.

Idem per psutil. La quantità di bug relativi a OSX sono la maggioranza:
http://code.google.com/p/psutil/issues/list?can=1&q=label%3AOpSys-OSX&colspec=ID+Summary+Type+Opsys+Status+Milestone+Opened+Owner+Progress&cells=tiles
Quello più segnalato è il fatto che per interrogare qualunque processo
che non sia il proprio (os.getpid()) da OSX 10.5 in avanti devi essere
root (l'unico UNIX a farlo).
Uniche fix: suid sull'interprete python o buttare OSX nel cesso.


--- Giampaolo
http://code.google.com/p/pyftpdlib/
http://code.google.com/p/psutil/
http://code.google.com/p/pysendfile/
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python