0

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
4

2 に答える 2