2012-01-04 14 views
6

Sono relativamente nuovo sia per Python che per bash. Tuttavia, sto trovando Python molto più intuitivo e più facile di bash. Ho alcuni script di bash che sono riuscito a ricostruire insieme, ma vorrei sostituirli con script Python - per facilità di manutenzione ecc.Come eseguire uno script python da un altro script python e ottenere il codice di stato restituito?

Gli script di bash eseguono essenzialmente script Python, controllano il codice di stato restituito e agiscono in modo appropriato (ad esempio, registra un messaggio, spegni un'email, ecc.) - questa è una funzionalità che posso fare per la maggior parte, riproducibile in uno script Python.

L'unica cosa che non sono sicuro di come fare è come eseguire uno script python da un altro script python e ottenere il codice di stato restituito.

Qualcuno può pubblicare qui uno snippet che mostra come eseguire un piccolo script python 'test.py' da uno script python principale 'master.py' e recuperare correttamente il codice di ritorno dopo aver eseguito test.py da master.py ?

+2

È sempre possibile importare un altro programma python (es .: avere 'test.py' nella stessa directory del codice in esecuzione e chiamare: import test) per eseguire facilmente il codice secondario, ma non gestirà il codice di ritorno business –

risposta

6

Utilizzando subprocess modulo

master.py

import subprocess 
retcode = subprocess.call(["/usr/bin/python", "/path/to/test.py"]) 
print "Return code of test.py is ", retcode 
+0

Fantastico !. Questo è proprio quello di cui avevo bisogno. –

0

io ti suggerirei di guardare il modulo sottoprocesso in python. È possibile avviare un altro processo che lo utilizza, manipolare i suoi flussi e ottenere il codice di ritorno.

Problemi correlati