开发者

Parsing output of apt-get install for progress bar

开发者 https://www.devze.com 2022-12-10 06:48 出处:网络
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.

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!-)

0

精彩评论

暂无评论...
验证码 换一张
取 消