Question

Je travaille sur un simple script Python GUI pour faire quelques tâches simples sur un système. Une partie de ce travail consiste à apt-get install installer des paquets.

Bien que cela se passe, je veux afficher une barre de progression qui devrait mettre à jour avec la progression du téléchargement, en utilisant le petit pourcentage indiqué dans l'interface apt-get dans le terminal.

MAIS! Je ne peux pas trouver un moyen d'obtenir les informations de progression. La tuyauterie ou de rediriger la sortie de apt-get juste donne des lignes statiques qui montrent le message « Téléchargement terminé » pour chaque paquet, et même pour la lecture via subprocess.Popen() dans mon script.

Comment puis-je lire la sortie de apt-get pour obtenir les pourcentages du fichier téléchargé?

Était-ce utile?

La solution

Comme je l'ai souvent dit, utilisez pexpect , pas etc subprocess, pour exécuter des sous-processus lorsque vous avez besoin pour obtenir leur sortie continue. pexpect fous le sous-processus en leur faisant croire qu'il est en cours d'exécution sur un terminal, de sorte que le sous-processus fournira le genre de sortie, il donnerait un vrai terminal ... et vous pouvez l'attraper et le transformer en une sorte de sortie de fantaisie que vous voulez! - )

Autres conseils

Au lieu d'analyser la sortie de l'apt-get, vous pouvez utiliser python-apt pour installer des paquets. Autant que je sache, il a aussi des modules pour rendre compte des progrès.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top