【发布时间】:2020-06-09 19:20:45
【问题描述】:
我想捕获archlinux的pacman包管理器的输出。这样做时,我想处理它的输出,但也想将其显示给用户。
这是我到目前为止所带来的:-
import subprocess as sb
import sys
lol = sb.Popen('sudo pacman -Syy',stdout=sb.PIPE,shell=True)
while True:
l = lol.stdout.readline().strip()
if not l and lol.poll() is not None:
break
sys.stdout.write(l.decode())
sys.stdout.flush()
但它会打印:-
❯ python test.py
:: Synchronizing package databases...downloading core.db...downloading extra.db...downloading community.db...downloading multilib.db...done
这就是我想要的
:: Synchronizing package databases...
core 135.2 KiB 160 KiB/s 00:01 [############################################################] 100%
extra 1706.7 KiB 470 KiB/s 00:04 [############################################################] 100%
community 4.9 MiB 1107 KiB/s 00:05 [############################################################] 100%
multilib 161.2 KiB 3.09 MiB/s 00:00 [############################################################] 100%
done
【问题讨论】:
标签: python subprocess pacman-package-manager