我正在开发一个简单的GUI Python脚本来在系统上执行一些简单的任务。其中一些工作涉及apt-get install
安装一些软件包。
在这种情况下,我希望显示一个进度条,该进度条应该根据下载的进度进行更新,使用终端中apt-get接口中显示的小百分比。
BUT!我找不到获取进度信息的方法。管道或重定向apt-get的输出只会给出静态行,显示每个包的“已完成下载”消息,并在我的脚本中通过subprocess.Popen()
进行读取。
如何从apt-get的输出中读取以获取下载文件的百分比?
答案 0 :(得分:5)
您可以使用python-apt来安装软件包,而不是解析apt-get的输出。 AFAIK还有用于报告进度的模块。
答案 1 :(得分:3)
正如我经常说的那样,当你需要获得连续输出时,使用pexpect,而不是子进程等来运行子进程。 pexpect使子进程误以为它在终端上运行,所以子进程将提供它在真实终端上提供的那种输出......你可以捕获它并将其转换成你想要的任何类型的花哨输出! - )