我正在尝试将progressbar添加到我的安装脚本中。我试图使用progressbar模块,但它取决于范围,我没有这个数字,而且我想安装的每个文件都需要不同的时间。 我有一个要安装的文件列表,我想用progressbar监视它。 这是生产线:
p2 = subprocess.Popen(["dpkg", "--force-all", "-i", "-R", pwd.strip() + "/archives"], stdout=out, stderr=err)
我想使用输出文件,但它是动态增长的,我没有成功地监视它。 输出文件的示例:
在文件的开头,每个包都有一行“Unpacking”和“Preparing”行:
^{pr2}$在这之后,会出现“设置”的行,有时会启动包的过程,如下图所示:
Setting up openvswitch-switch (2.0.2-0ubuntu0.14.04.2) ...
openvswitch-switch stop/waiting
openvswitch-switch start/running
Setting up libllvm3.6:amd64 (1:3.6-2ubuntu1) ...
Setting up libxen-4.4 (4.4.2-0ubuntu0.14.04.1) ...
Setting up sg3-utils (1.36-1ubuntu1) ...
.
.
.
我有294个文件,行数包括'Unpacking'294',Preparing'294 and'setup'293,总行数是915。在
有人知道怎么做吗?在
没有
for
循环、递归或其他方法,您可以在发布的代码中插入进度更新函数,因此,除非您可以在上面进行扩展,否则您真的很走运。我制作进度条的典型方法是:我通常会将进度条的设置和更新移动到一个单独的类中,以使实际逻辑更具可读性,这样您就可以得到如下内容:
^{pr2}$要打印出进度条,您需要某种迭代过程,通过它可以实际更新进度。在
在您的情况下,您可能需要自己实现,而不是进行子流程调用。或者为每个文件单独调用。但是不管怎样-没有迭代的形式,没有进度条。在
相关问题 更多 >
编程相关推荐