Lorsque vous utilisez Ipython Notebook, la sortie des processus enfants engendrés par indique uniquement Y a-t-il des paramètres de configuration que je peux accorder de telle sorte que la sortie des processus enfants apparaissent dans le cahier lui-même? p> effectivement des extensions Python C personnalisées aura également la production avalée. Y a-t-il un correctif? P> P> Subprocess code> ne se présente jamais dans le cahier lui-même. Par exemple, cette cellule
0 code> comme sortie, et le
bonjour code> est imprimé sur le terminal où Ipython est lancé. < / p>
3 Réponses :
Utilisez check_output code> si vous souhaitez la sortie capturée.
check_call code> renvoie le code de sortie.
import subprocess
print subprocess.check_output(['echo', 'hello'])
La sortie complète est capturée une fois la commande terminée lors de l'utilisation de check_output code>. Le processus que je veux réellement appeler est long, et il écrit à STDOUT et STDERR beaucoup d'informations de journalisation. Je veux voir ces informations de journalisation lors de l'exécution, donc
check_output code> n'est pas le moyen de partir.
En Python3: impression (sous-processus.check_output (['echo', 'Hello']))
from subprocess import Popen, PIPE p = Popen (['echo', 'hello'], stdout=PIPE) out = p.communicate () print (out) (b'hello\n', None) You can also look at stderr, similarly
de Python3.5 +
Je sens que je devrais ajouter une meilleure réponse. Le module code> sous-processus code> fournit désormais la méthode code> exécutation code> selon le Documentation : P>
L'approche recommandée pour invoquer des sous-processus consiste à utiliser la fonction RUN () pour tous les cas d'utilisation qu'il peut gérer. Pour des cas d'utilisation plus avancés, l'interface popen sous-jacente peut être utilisée directement.
code> p>