6

システムでいくつかの簡単なタスクを実行するための簡単な GUI Python スクリプトに取り組んでいます。その作業の一部には、apt-get installいくつかのパッケージのインストールが含まれます。

これが進行している間、ターミナルのapt-getのインターフェースに表示される小さなパーセンテージを使用して、ダウンロードの進行状況で更新される進行状況バーを表示したいと思います。

しかし!進捗情報を取得する方法が見つかりません。apt-get の出力をパイプまたはリダイレクトすると、各パッケージの「ダウンロードが完了しました」というメッセージを示す静的な行が表示されるだけsubprocess.Popen()で、スクリプトでの読み取りについても同じです。

ダウンロードされたファイルのパーセンテージを取得するために apt-get の出力から読み取るにはどうすればよいですか?

4

2 に答える 2

6

apt-get の出力を解析する代わりに、python-apt を使用してパッケージをインストールできます。私の知る限り、進行状況を報告するためのモジュールもあります。

于 2009-11-07T07:42:22.837 に答える
3

私がよく言っているように、継続的な出力を取得する必要がある場合は、 subprocess などではなくpexpectを使用してサブプロセスを実行してください。pexpect は、サブプロセスをだまして端末で実行されていると信じ込ませるため、サブプロセスは実際の端末で出力するのと同じ種類の出力を提供します...そして、それをキャッチして、必要な任意の種類の派手な出力に変換できます!- )

于 2009-11-07T05:53:22.407 に答える