J'ai un programme principal, dans lequel un utilisateur peut appeler un sous-processus (pour télécharger des fichiers) plusieurs fois. Chaque fois, j'appelle aria2c en utilisant subprocess, et il va imprimer la progression à stdin. Bien sûr, il est souhaitable que l'utilisateur puisse voir la progression de chaque téléchargement séparément. Donc, la question est de savoir comment puis-je rediriger la sortie de chaque processus vers une fenêtre de console séparée?Python: redirige la sortie vers plusieurs consoles?
-1
A
Répondre
0
Je suis un peu confus. L'utilisation de subprocess.Popen (...) devrait générer une nouvelle invite de commande automatiquement pour chaque appel. Qu'est-ce que aria2c? Est-ce un programme que vous avez écrit en python? Est-ce un exe tiers qui écrit dans la fenêtre d'invite de commande?
Je peux vous aider à rediriger toutes les sorties des sous-processus vers l'invite de commande principale, afin qu'elles puissent être affichées en ligne. En outre, peut-être que vous pouvez donner un peu plus de détails sur ce qui se passe en premier, afin que je puisse comprendre votre problème un peu mieux.
Questions connexes
- 1. Travailler plusieurs consoles en python
- 2. Redirige la sortie standard vers un fichier?
- 3. unix redirige la queue vers le fichier
- 4. Sortie Python PrettyPrint vers la variable
- 5. Auth redirige vers SController
- 6. Consoles interactives en ligne
- 7. Bootstrap.ModalPane redirige vers l'index?
- 8. Redirige automatiquement vers SSL
- 9. Navigateur redirige vers https
- 10. Comment ouvrir plusieurs consoles dans plusieurs onglets dans Eclipse?
- 11. PSEXEC ne redirige pas la sortie 7zip
- 12. Redirige la sortie standard efficacement dans .NET
- 13. Python: Comment rediriger la sortie de os.system vers shell Python?
- 14. Bash: redirige la sortie init.d dans la variable
- 15. Joomla redirige vers la version en live
- 16. WordPress redirige vers la page introuvable
- 17. Connexion redirige vers la mauvaise page
- 18. PYGTK redirige l'événement vers TreeView
- 19. Redirige la sortie d'un fichier .bat exécuté par un script python vers l'interface graphique, et fait ce script dans EXE
- 20. htaccess: Redirige www.subdomian.example.com vers subdomain.example.com
- 21. Sortie de sous-processus Python vers stdout
- 22. Sortie OpenAL vers plusieurs périphériques (Linux)
- 23. Consoles et onglets
- 24. Console de sortie Linux vers plusieurs moniteurs
- 25. C# redirige la sortie du processus (pipe) vers un autre processus
- 26. redirection d'impression vers plusieurs destinations de sortie
- 27. Puis-je ouvrir plusieurs consoles de débogage dans xcode?
- 28. Sortie de plusieurs fichiers plats vers plusieurs tables SQL
- 29. Comment rediriger la sortie du script Python vers le terminal
- 30. Sortie Python vers le terminal lors de la connexion ssh
Aria2c est un programme tiers. Il est étrange qu'une seule invite de commande soit ouverte même si subprocess.Popen est appelé plusieurs fois. La commande exacte que j'utilise est "Popen (commande, shell = True)". Et aussi, cela permettra-t-il à plusieurs processus de s'exécuter en même temps (sans attendre la fin de la commande précédente)? – user1865009
Lorsque vous utilisez le sous-processus.Popen, vous pouvez exécuter plusieurs processus en même temps. J'ai utilisé ceci est une simulation de chaîne de Markov, où j'ai couru plusieurs chaînes en même temps (pour gagner du temps). À l'origine, mon script ouvrait 5 fenêtres d'invite de commande différentes et affichait la sortie, mais j'ai décidé qu'il était préférable de rediriger la sortie vers la fenêtre principale, où je pouvais afficher la progression de chacun en ligne. Quand le processus a fini et a quitté, je le manipulerais pour que la sortie par défaut soit "Terminé". En outre, exécutez-vous ceci est Linux ou Windows? –
Encore une chose, c'est que la bibliothèque de sous-processus peut être un peu boguée, donc vous devrez peut-être créer des classes threadées, et générer de nouveaux threads pour lancer Aria2c. Cela peut être beaucoup plus lent (en fonction de la façon dont aria2c est géré) Je peux suggérer de créer un sous-module en python qui appelle simplement le programme via os.system (...), et votre script principal peut appeler un sous-processus.Popen () sur ce sous-module avec sys.argv donné à utiliser dans l'appel système Mais si vous exécutez ce programme via python sur un seul cas en utilisant simplement os.system (...) une fenêtre apparaît-elle et la sortie est affichée? –