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