<br><br><div class="gmail_quote">2012/6/1 Matteo Perini <span dir="ltr"><<a href="mailto:perini.matteo@gmail.com" target="_blank">perini.matteo@gmail.com</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div bgcolor="#FFFFFF" text="#000000">
Il 01/06/2012 09:31, Giovanni Marco Dall'Olio ha scritto:
<div class="im"><blockquote type="cite">de nada... mi hanno fatto notare che mi sono
dimenticato le parentesi quadre:<br>
<br>
>>> myoutput = subprocess.check_output(['ls', '-a']<br>
<br>
<div class="gmail_quote">2012/6/1 Matteo Perini <span dir="ltr"><<a href="mailto:perini.matteo@gmail.com" target="_blank">perini.matteo@gmail.com</a>></span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">myoutput =
subprocess.check_output('ls', '-a')</blockquote>
</div>
<br>
</blockquote></div>
Si ma quello non è assolutamente un problema ;)<br>
<br>
Avrei un altra domanda invece... se posso.<br>
con subprocess chiamo molte volte in sequenza lo stesso comando e
non riscontro nessun problema perchè il comando termina prima che
venga richiamato nuovamente.<br>
Se però contemporaneamente lo richiamo tramite un "button" della gui
ottengo errore e si blocca tutto.<br>
Questo succede perchè all'interno del comando che lancio viene
richiamata una videocamera che, se è già attiva in un altra istanza
del programma, risulterà busy. <br>
C'è un modo per controllare se un programma è in running sul SO?<br>
E' una cosa che secondo voi posso gestire con try except?<br>
</div></blockquote><div><br>Io non sono molto esperto di programmazione di sistema, pero mi vengono in mente un paio di modi per risolvere il problema:<br>
<br>
* usare un .lock file, ovvero fare in modo che la applicazione crei un
un file temporaneo quando si avvia e che lo distrugga quando termina.
Per esempio, firefox usa (o usava) questo sistema.<br>
* su un sistema unix, lanciare subprocess.check_output("ps aux") e verificare se l'applicazione è in esecuzione<br> * forse si puó usare anche un try-except, peró potrebbe essere difficile distinguere se la videocamera non risponde perché è occupata o se invece non risponde perché ci sono altri problemi, e.g. non è collegata. <br>
<br>
Probabilmente esistono soluzioni piú eleganti che permettono di definire code di jobs ed eseguire il comando quando la videocamera si libera, peró non ti saprei consigliare una libreria particolare.<br><br><br><br> </div>
<blockquote class="gmail_quote" style="margin:0pt 0pt 0pt 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div bgcolor="#FFFFFF" text="#000000">Ciao<br>
e grazie di nuovo.<span class="HOEnZb"><font color="#888888"><br>
Matteo<br>
</font></span></div>
<br>_______________________________________________<br>
Python mailing list<br>
<a href="mailto:Python@lists.python.it">Python@lists.python.it</a><br>
<a href="http://lists.python.it/mailman/listinfo/python" target="_blank">http://lists.python.it/mailman/listinfo/python</a><br>
<br></blockquote></div><br><br clear="all"><br>-- <br>Giovanni Dall'Olio, phd student<br>IBE, Institut de Biologia Evolutiva, CEXS-UPF (Barcelona, Spain)<br><br>My blog on bioinformatics: <a href="http://bioinfoblog.it" target="_blank">http://bioinfoblog.it</a><br>
<br>