为进度条解析apt-get install的输出

时间:2009-11-07 05:18:21

标签: python progress-bar subprocess popen apt-get

我正在开发一个简单的GUI Python脚本来在系统上执行一些简单的任务。其中一些工作涉及apt-get install安装一些软件包。

在这种情况下,我希望显示一个进度条,该进度条应该根据下载的进度进行更新,使用终端中apt-get接口中显示的小百分比。

BUT!我找不到获取进度信息的方法。管道或重定向apt-get的输出只会给出静态行,显示每个包的“已完成下载”消息,并在我的脚本中通过subprocess.Popen()进行读取。

如何从apt-get的输出中读取以获取下载文件的百分比?

2 个答案:

答案 0 :(得分:5)

您可以使用python-apt来安装软件包,而不是解析apt-get的输出。 AFAIK还有用于报告进度的模块。

答案 1 :(得分:3)

正如我经常说的那样,当你需要获得连续输出时,使用pexpect而不是子进程等来运行子进程。 pexpect使子进程误以为它在终端上运行,所以子进程将提供它在真实终端上提供的那种输出......你可以捕获它并将其转换成你想要的任何类型的花哨输出! - )