Parsing output of apt-get install for progress bar
I'm working on a simple GUI Python script to do some simple tasks on a system. Some of that work involves apt-get install
to install some packages.
While this is going on, I want to display a progress bar that should update with the progress of the download, using the little percentage shown in apt-get's interface in the terminal.
BUT! I can't find a way to get the progress info. Piping or redirecting the output of apt-get just gives static lines that show the "completed download" message for each package, and same for reading via subprocess.Popen()
in my script.
How can I read开发者_Go百科 from apt-get's output to get the percentages of the file downloaded?
Instead of parsing the output of the apt-get, you can use python-apt to install packages. AFAIK it also has modules for reporting the progress.
As I've often said, use pexpect, not subprocess etc, to run sub-processes when you need to get their continuous output. pexpect fools the subprocess into believing it's running on a terminal, so the subprocess will provide just the kind of output it would give on a real terminal... and you can catch it and transform it into any kind of fancy output you want!-)
精彩评论