proc.stdout = proc_log
3 Réponses :
Vous ne pouvez pas. Une fois le processus démarré, son stdout n'est rien que vous puissiez changer de l'extérieur. Vous devez entrer dans cet espace de processus sur Muck avec ses descripteurs de fichier. P>
Si vous avez un moyen (en MyReset () Code> Je suppose) parler au processus de course, vous pouvez peut-être l'ingénieur un moyen de passer un nouveau nom de fichier à (re) ouvert stdout, de cette façon. p>
Comme ledess dit, vous ne pouvez pas modifier le descripteur de fichier que le processus enfant écrit sa sortie à.
Ce que vous pouvez faire, est lu la sortie du processus enfant dans votre script Python, puis écrivez-le à quoi que ce soit fichier que vous voulez. Par exemple: p> obus, vous devez déterminer comment le contrôle devrait se comporter dans votre application, c'est-à-dire pouvez-vous faire l'écriture du fil principal, lorsque le fil principal doit-il faire Retour de startProc () code> Dans ce cas, ou devez-vous faire l'écriture d'un autre thread de sorte que le thread principal puisse revenir de
startProc () code> immédiatement. P > p>
Il y a des problèmes / bugs subtils liés à la sous-processus.Pipe: http://bugs.python.org/issue1652 p>
Apparemment, cela a été fixé à Python3 +, mais pas en python 2,7 et plus. Pour cela, vous devez utiliser: code.google.com/p/python-subprocess32 / p>