Parsen Ausgabe von apt-get für Fortschrittsbalken installieren
-
18-09-2019 - |
Frage
Ich arbeite an einem einfachen GUI Python-Skript einige einfache Aufgaben auf einem System zu tun. Ein Teil dieser Arbeit beinhaltet apt-get install
einige Pakete zu installieren.
Während dies vor sich geht, möchte ich einen Fortschrittsbalken angezeigt werden, die mit dem Fortschritt des Downloads aktualisieren sollte, den kleinen Prozentsatz mit in apt-get die Schnittstelle im Terminal angezeigt.
ABER! Ich kann nicht einen Weg, um den Fortschritt Infos. Rohrleitungen oder die Ausgabe Umleitung apt-get gibt nur statische Linien, die die „abgeschlossen download“ Nachricht für jedes Paket zeigen, und gleiche gilt für über subprocess.Popen()
in meinem Skript zu lesen.
Wie kann ich lesen von apt-get die Ausgabe der Prozentsätze der Datei heruntergeladen zu bekommen?
Lösung
Wie ich oft gesagt habe, verwenden Sie pexpect , nicht subprocess etc, Teilprozesse ausgeführt werden, wenn Sie ihre Dauerleistung erhalten müssen. pexpect Narren die subprocess zu glauben, es ist auf einem Terminal ausgeführt wird, so dass die subprocess nur die Art der Ausgabe zur Verfügung stellt es auf einem echten Terminal geben würde ... und Sie können es fangen und es in jede Art von Phantasie Ausgang verwandeln Sie wollen! - )
Andere Tipps
Statt den Ausgang des apt-get-Parsing, können Sie python-apt verwenden, um Pakete zu installieren. AFAIK hat es auch Module für den Fortschritt berichten.