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

2012-06-01 Per discussione Giovanni Marco Dall'Olio
de nada... mi hanno fatto notare che mi sono dimenticato le parentesi
quadre:

myoutput = subprocess.check_output(['ls', '-a']

2012/6/1 Matteo Perini perini.mat...@gmail.com

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




-- 
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-06-01 Per discussione Giovanni Marco Dall'Olio
2012/6/1 Matteo Perini perini.mat...@gmail.com

  Il 01/06/2012 09:31, Giovanni Marco Dall'Olio ha scritto:

 de nada... mi hanno fatto notare che mi sono dimenticato le parentesi
 quadre:

 myoutput = subprocess.check_output(['ls', '-a']

 2012/6/1 Matteo Perini perini.mat...@gmail.com

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


  Si ma quello non è assolutamente un problema ;)

 Avrei un altra domanda invece... se posso.
 con subprocess chiamo molte volte in sequenza lo stesso comando e non
 riscontro nessun problema perchè il comando termina prima che venga
 richiamato nuovamente.
 Se però contemporaneamente lo richiamo tramite un button della gui
 ottengo errore e si blocca tutto.
 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.
 C'è un modo per controllare se un programma è in running sul SO?
 E' una cosa che secondo voi posso gestire con try except?


Io non sono molto esperto di programmazione di sistema, pero mi vengono in
mente un paio di  modi per risolvere il problema:

  * 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.
  * su un sistema unix, lanciare subprocess.check_output(ps aux) e
verificare se l'applicazione è in esecuzione
  * 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.

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.





 Ciao
 e grazie di nuovo.
 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-06-01 Per discussione Walter Valenti



  * 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.

Es:
import fcntl
fk=open(lock_path,w)
try:
    fcntl.flock(fk,fcntl.LOCK_EX + fcntl.LOCK_NB)  ## lock non bloccante
    ### FAI QUELLO CHE DEVI !!
except:
    ### ESCI ###

Dove lock_path è in path assoluto del file che usi come lock.

___
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-06-01 Per discussione gianfranco guzzo
Sapete che mi piacerebbre capire di piú quello che fate? Qualcuno
disponibile a dare qualche ora di lezione(a pagamento ovvio)? Ho seguito
corsi su python e mi piacerebbe poter gestire un impiango di
videosorveglianza per casa mia e il mio ufficio e utilizzare sharp develop
come si deve...pero' preferisco farlo scambiando di pers
ona piu che via mail o seguendo video.
Il giorno 01/giu/2012 08:57, Matteo Perini perini.mat...@gmail.com ha
scritto:

 Il 30/05/2012 18:57, Giovanni Marco Dall'Olio ha scritto:


 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.htmlhttp://docs.python.org/library/commands.html,
  o PEP 0324
 http://www.python.org/dev/**peps/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

  Grazie era proprio quello che mi serviva e che volevo sapere.
 Ciao
 Matteo

 __**_
 Python mailing list
 Python@lists.python.it
 http://lists.python.it/**mailman/listinfo/pythonhttp://lists.python.it/mailman/listinfo/python

___
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-06-01 Per discussione Matteo Perini

Il 01/06/2012 10:12, Giovanni Marco Dall'Olio ha scritto:


Io non sono molto esperto di programmazione di sistema, pero mi 
vengono in mente un paio di  modi per risolvere il problema:


  * 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.
  * su un sistema unix, lanciare subprocess.check_output(ps aux) e 
verificare se l'applicazione è in esecuzione
  * 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.


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.



Grazie della risposta.
Penso proverò con un file di lock però temo che avrò qualche problema a 
far aspettare la chiamate del processo fino a quando .lock non viene 
distrutto.

Questo pomeriggio ci provo.
Grazie mille.
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-06-01 Per discussione Matteo Perini

Il 01/06/2012 10:34, Walter Valenti ha scritto:



   * 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.

Es:
import fcntl
fk=open(lock_path,w)
try:
 fcntl.flock(fk,fcntl.LOCK_EX + fcntl.LOCK_NB)  ## lock non bloccante
 ### FAI QUELLO CHE DEVI !!
except:
 ### ESCI ###

Dove lock_path è in path assoluto del file che usi come lock.


Grazie della risposta.
non conoscevo fcntl
Ok ma come ho risposto a Giovanni non vorrei uscire se il lock è 
attivo ma mettere in coda la chiamata al comando in attesa che il lock 
venga distrutto.

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


Re: [Python] MAC e python

2012-06-01 Per discussione Giampaolo Rodolà
Il 31 maggio 2012 19:00, enrico franchi enrico.fran...@gmail.com ha scritto:
 2012/5/31 Giampaolo Rodolà g.rod...@gmail.com:

 Idem per psutil. La quantità di bug relativi a OSX sono la maggioranza:
 http://code.google.com/p/psutil/issues/list?can=1q=label%3AOpSys-OSXcolspec=ID+Summary+Type+Opsys+Status+Milestone+Opened+Owner+Progresscells=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.

 Mi fai un esempio concreto di una cosa che non dovrei essere riuscito a fare?

 processes = psutil.get_process_list()
 root_processes = [p for p in processes if p.username != 'enrico']
 p = root_processes[-1]
 p.get_children()
 [psutil.Process(pid=1) at 4313276368, psutil.Process(pid=0,
 name='kernel_task') at 4313276304]


 ls -l `which python`
 -rwxrwxr-x  1 enrico  staff  8784 May 31 19:02
 /Users/enrico/src/psutil-test/bin/python

 Sotto viene chiamato questo:
 ls -l /Library/Frameworks/EPD64.framework/Versions/7.2/bin/python
 -rwxrwxr-x  2 root  wheel  8784 Jan 13 18:14
 /Library/Frameworks/EPD64.framework/Versions/7.2/bin/python

In questo momento non ho un OSX sotto mano ma in genere quello che
riesci a ottenere è nome del processo, parent pid (che è usato da
get_children() nel tuo esempio) e poche altre informazioni.
Altre info relative alla memoria (get_memory_info()), cmdline, e
persino i tempi di CPU (per calcolare l'utilizzo percentuale)
dovrebbero richiedere root.
http://code.google.com/p/psutil/issues/detail?id=215
http://code.google.com/p/psutil/issues/detail?id=108
http://code.google.com/p/psutil/issues/detail?id=106

Non a caso ps su OSX gira con suid.
Qui viene descritto il problema:
http://psutil.googlecode.com/issues/attachment?aid=7360485559905024215name=task_for_pid_signing.pdftoken=qa3FQnumrJFP702cgO5nhq-_JfE%3A1338545731342

--- 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


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

2012-06-01 Per discussione Nicola Larosa
Matteo Perini wrote:
 da ingegnere mi mancano le basi della programmazione (sigh)

Eh? Forse ti riferivi a qualche tipo di ingegnere in particolare?

-- 
Nicola Larosa - http://www.tekNico.net/

It feels *good* when your Go tests seem to build and run in the time
Python takes to lever itself out of bed and yawningly load a module.
 - William Reade, February 2012
___
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-06-01 Per discussione Matteo Perini

Il 01/06/2012 12:34, Nicola Larosa ha scritto:

Matteo Perini wrote:

da ingegnere mi mancano le basi della programmazione (sigh)

Eh? Forse ti riferivi a qualche tipo di ingegnere in particolare?

Mah... io sono ing. meccanico e l'unico esame di programmazione che 
c'era nel mio corso di studi era su Visual Basic.

Valutate voi.
Il mio modesto parere è che non sia stato particolarmente utile.
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-06-01 Per discussione Nicola Larosa
 Matteo Perini wrote:
 da ingegnere mi mancano le basi della programmazione (sigh)

 Nicola Larosa ha scritto:
 Eh? Forse ti riferivi a qualche tipo di ingegnere in particolare?

Matteo Perini wrote:
 Mah... io sono ing. meccanico

Lo prendo per un sì, grazie della precisazione.

-- 
Nicola Larosa - http://www.tekNico.net/

It feels *good* when your Go tests seem to build and run in the time
Python takes to lever itself out of bed and yawningly load a module.
 - William Reade, February 2012
___
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-06-01 Per discussione Simone Federici
2012/6/1 Nicola Larosa n...@teknico.net

 Lo prendo per un sì, grazie della precisazione.


Entrambi l'ingegneri?

Per una persona ottimista, il bicchiere e' mezzo pieno. Per una persona
pessimista, il bicchiere e' mezzo vuoto. Per l'ingegnere il bicchiere e'
due volte più grande del necessario.
___
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-06-01 Per discussione Walter Valenti


  Es:
  import fcntl
  fk=open(lock_path,w)
  try:
       fcntl.flock(fk,fcntl.LOCK_EX + fcntl.LOCK_NB)  ## lock non bloccante
       ### FAI QUELLO CHE DEVI !!
  except:
       ### ESCI ###
 
  Dove lock_path è in path assoluto del file che usi come lock.
 
 Grazie della risposta.
 non conoscevo fcntl
 Ok ma come ho risposto a Giovanni non vorrei uscire se il lock è 
 attivo ma mettere in coda la chiamata al comando in attesa che il 
 lock 
 venga distrutto.


In questo caso ti basta usare un lock bloccante:
fcntl.flock(fk,fcntl.LOCK_EX)

rimane in attesa fino a che non viene rilasciato il lock precedente.


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


[Python] E' mai possibile...

2012-06-01 Per discussione Simone Federici
... che dopo una settimana che faccio scouting su framework java ...
... non ne trovi uno?

il troppo python fa male
S
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] E' mai possibile...

2012-06-01 Per discussione Carlos Catucci
... che dopo una settimana che faccio scouting su framework java ...

 ... non ne trovi uno?

 il troppo python fa male


Rimembranze. Velocity+Turbine+Maven+Torque. E ovviamente Tomcat. Ma eravamo
agli albori. All'epoca non sapevo esistesse la perfezione del pythone.

Carlos
-- 
If you have no voice, SCREAM! If you have no legs, RUN! If you have no
hope, INVENT!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] E' mai possibile...

2012-06-01 Per discussione Simone Federici
2012/6/1 Carlos Catucci carlos.catu...@gmail.com

 Rimembranze. Velocity+Turbine+Maven+Torque. E ovviamente Tomcat. Ma
 eravamo agli albori. All'epoca non sapevo esistesse la perfezione del
 pythone.


Neo ho visti a carrellate ma uno dove modelli una classe e sei online
non c'è.

in tutti ti devi scrivere (o far generare codice per tuo conto) una serie
di strati prima di arrivare online.

la cosa che mi manca sono i forms, gli inline, un ORM già funzionante
chiavi in mano...

insomma devo ricominciare a stimare i tempi di infrastruttura che con il
pitone erano passati a zero
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] E' mai possibile...

2012-06-01 Per discussione Raffaele Salmaso
2012/6/1 Simone Federici s.feder...@gmail.com:
 ... che dopo una settimana che faccio scouting su framework java ...
 ... non ne trovi uno?

 il troppo python fa male
http://www.playframework.org/ ?

mai usato però

 S

-- 
()_() | That said, I didn't actually _test_ my patch.      | +
(o.o) | That's what users are for!                         | +---+
'm m' |                                   (Linus Torvalds) |  O  |
(___) |                        raffaele at salmaso dot org |
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python


Re: [Python] E' mai possibile...

2012-06-01 Per discussione Carlos Catucci
la cosa che mi manca sono i forms, gli inline, un ORM già funzionante
chiavi in mano...


 insomma devo ricominciare a stimare i tempi di infrastruttura che con il
 pitone erano passati a zero


Vero il pythone ci ha viziati. CHe pure qualche canchero ogni tanto lo si
tira, non e' che no.

Carlos
-- 
If you have no voice, SCREAM! If you have no legs, RUN! If you have no
hope, INVENT!
___
Python mailing list
Python@lists.python.it
http://lists.python.it/mailman/listinfo/python