6

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

在此过程中,我想使用终端中 apt-get 界面中显示的小百分比显示一个进度条,该进度条应随着下载进度而更新。

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

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

4

2 回答 2

6

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

于 2009-11-07T07:42:22.837 回答
3

正如我经常说的,当您需要获得子进程的连续输出时,使用pexpect不是subprocess 等来运行子进程。pexpect 欺骗子进程使其相信它在终端上运行,因此子进程将提供它在真实终端上提供的那种输出......你可以抓住它并将其转换为你想要的任何类型的奇特输出!- )

于 2009-11-07T05:53:22.407 回答