|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
[Risolto][Python]os.popen ed esecuzione script
Ciao,
ho uno script al cui interno richiamo un comando da shell con os.popen che produce dell'output. Codice:
print ("\n .............LOADING SHELL COMMAND ") cmd = os.popen(data["om_points"], "w") Ho provato a modificarlo in questo modo ma non funziona: Codice:
print ("\n .............LOADING SHELL COMMAND ") cmd = os.popen(data["om_points"], "w").wait() Come posso fare? Grazie. Ultima modifica di pmhwp : 14-05-2010 alle 23:35. |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
os.popen è una funzione che restituisce un oggetto file. Come fai a chiamare un metodo wait() con esso? Per questo ottieni errore. Se tu vuoi solo eseguire allora vengono eseguiti i comandi, se vuoi pure l'output allora usa commands.getoutput().
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Ok il problema però è che voglio eseguire un comando shell da uno script python e aspettare che sia terminato prima di eseguire i successivi comandi dello script.
Come devo fare? Grazie. |
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
Ma lo script non ti va avanti se il comando non ti termina. Posta il codice che hai scritto fino ad ora e mettilo sotto il tag CODE gentilmente.
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Codice:
#!/usr/bin/python print ("\n .............LOADING OM_POINTS ") cmd="om_points -o xml" om_points = os.popen(cmd, "w") #altri comandi script ........ ........ ........ Lo script quindi non aspetta che sia terminato e continua eseguendo gli altri comandi dello script che sono sotto. Grazie. |
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
Prova con:
Quote:
Ultima modifica di Ryuzaki_Eru : 14-05-2010 alle 23:32. |
|
![]() |
![]() |
![]() |
#7 |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Leggere la documentazione di Python è sempre utile
![]() http://docs.python.org/library/subpr...ubprocess.call
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Oct 2005
Messaggi: 453
|
Risolto con:
Codice:
status, text = getstatusoutput(cmd) |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
Te l'avevo suggerito dall'inizio il modulo commands, pensavo che lo avessi almeno guardato. Poi c'è anche subprocess come ha consigliato nico (non mi veniva il nome, non dormo da 36 ore, le mie capacità cognitive sono leggermente ridotte).
|
![]() |
![]() |
![]() |
#10 |
Senior Member
Iscritto dal: Aug 2003
Città: Barletta (BA)
Messaggi: 939
|
Sì attualmente c'è molto caos al riguardo, fortuna che con Python3 è stata fatta pulizia
__________________
In a world without fences, who needs Gates? Power by: Fedora 8 - Mac OS X 10.4.11 |
![]() |
![]() |
![]() |
#11 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
subprocess è la soluzione giusta. commands è deprecato da un po'.
P.S. Lunga vita a Python 3. ![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#12 | |||
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
Quote:
Quote:
Quote:
|
|||
![]() |
![]() |
![]() |
#13 | |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
Spero non per codice nuovo, visto che è scritto a chiare lettere che è deprecato.
Quote:
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
|
![]() |
![]() |
![]() |
#14 |
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
Alcuni lo usano per progetti nuovi, purtroppo.
|
![]() |
![]() |
![]() |
#15 |
Senior Member
Iscritto dal: Jan 2002
Città: Germania
Messaggi: 26110
|
![]()
__________________
Per iniziare a programmare c'è solo Python con questo o quest'altro (più avanzato) libro @LinkedIn Non parlo in alcun modo a nome dell'azienda per la quale lavoro Ho poco tempo per frequentare il forum; eventualmente, contattatemi in PVT o nel mio sito. Fanboys |
![]() |
![]() |
![]() |
#16 |
Senior Member
Iscritto dal: Sep 2009
Città: Nel mondo dei sogni
Messaggi: 4131
|
Fosse solo quello
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:04.