Ich arbeite an einem einfachen GUI-Python-Skript, um einige einfache Aufgaben auf einem System zu erledigen. Ein Teil dieser Arbeit beinhaltet apt-get install
, um einige Pakete zu installieren.Analyse der Ausgabe von apt-get install für Fortschrittsbalken
Während dies geschieht, möchte ich einen Fortschrittsbalken anzeigen, der mit dem Fortschritt des Downloads aktualisiert werden sollte, mit dem kleinen Prozentsatz, der in der Schnittstelle von apt-get im Terminal angezeigt wird.
ABER! Ich kann keine Möglichkeit finden, die Fortschrittsinformationen zu erhalten. Piping oder Redirect der Ausgabe von apt-get gibt nur statische Zeilen, die die Meldung "completed download" für jedes Paket anzeigen, und dasselbe für das Lesen über subprocess.Popen()
in meinem Skript.
Wie kann ich von der Ausgabe von apt-get lesen, um die Prozentsätze der heruntergeladenen Datei zu erhalten?
Jede Möglichkeit, dass dies auch in meinem C-Port mit dem Posix popen() funktionieren könnte? Oder gibt es eine ähnliche Methode? –
'popen' lässt den Unterprozess wissen, dass seine Ausgabe eine Pipe ist, also haben Sie wahrscheinlich kein Glück, außer mit Befehlen, die so schön sind, dass Sie sie nach" voller ungepufferter Echtzeitausgabe sowieso pls! "Fragen können. und ich denke nicht, dass apt-get in dieser elitären Gruppe ist. Um ein "gefälschtes Terminal" in C unter Linux zu implementieren, beginne mit der pty (7) man-Seite, z. bei http://linux.die.net/man/7/pty - und, viel Glück (viel Arbeit wird benötigt!). –