Bonjour,
J'aimerais automatiser avec un programme Python un traitement long qui se fait d'habitude en console. Il s'agit en fait d'une conversion de format video avec l'excellent ffmpeg, dont l'exécution peut demander plus de 10 minutes.
J'essaie alors de lancer le programme et ses arguments dans un processus (avec subprocess.Popen), mais je dois attendre que le processus soit terminé pour avoir les lignes d'affichage, alors que je voudrais l'affichage progressif pendant le traitement. comme je les ai dans la console.
J'ai cherché sur le web pendant des heures, et aucun exemple trouvé n'a permis cela: j'ai donc la console avec un écran noir pendant toute la durée du traitement.
Voilà un petit exemple de code qui affiche l'aide de python (affichage rapide ici) avec Windows 10 et Python 3.4:
Quelqu'un aurait-il une idée?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 import sys, os import subprocess console = 'cmd /k' with subprocess.Popen(console, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.STDOUT, shell=True, bufsize=10000) as proc: commande = br'E:\Python34\python.exe -h' lignes = str(proc.communicate(commande + b'\n')[0], 'cp850').splitlines() for ligne in lignes: print(ligne) x = input("?") # pour garder la console ouverte en fin du traitement
Partager