質問

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

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

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

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

役に立ちましたか?

解決

何度も言いますが、 期待する, ない サブプロセスなどを使用して、継続的な出力を取得する必要があるときにサブプロセスを実行します。pexpect はサブプロセスをだまして端末上で実行されていると信じ込ませるため、サブプロセスは実際の端末上で提供されるのと同じ種類の出力を提供します...それをキャッチして、必要なあらゆる種類の派手な出力に変換できます!-)

他のヒント

代わりにapt-getの出力を解析する

は、パッケージをインストールするためのpython-aptのを使用することができます。私の知る限り、それはまた、進捗状況を報告するためのモジュールがあります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top