Re: [Python] leggere lo standard output di un programma esterno
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/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
* 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
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
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
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
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
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
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
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/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
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...
... 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...
... 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/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/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...
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