Pythonでのいくつかの計算(たとえば、
CMBマップの対称係数の計算)に関連して、プロセスをより視覚的にしたかったのです。 さて、少なくとも進行状況バーを追加します。 空のコンソールの前に座って、実行中のコマンドに固執するのは退屈です。 動作するか、ハングするかのどちらかです...すぐにはわかりません。 そして、私はどんな種類の実行ログもやりたくありません。なぜなら、結果として生じる混乱の中で目が失われるからです。
最近、解決策が見つかりました:モジュールプログレスバー。 モジュールはdebリポジトリにあり(ubuntu 9.10リポジトリにあります)、python-progressbarパッケージによってインストールされます:
Copy Source | Copy HTML sudo apt-get install python-progressbar
Copy Source | Copy HTML sudo apt-get install python-progressbar
始めるには、小さな例を実行してみてください:
Copy Source | Copy HTML
- #!/ usr / bin / python
- #-*-コーディング:utf-8-*-
- インポートプログレスバー
- 輸入時間
- bar = progressbar.ProgressBar()。start() #新しいプログレスバーを作成
- xrange ( 101 )のtの場合:
- bar.update(t) #この方法で値を設定できます。
- 時間の睡眠( 0.01 )
- bar.finish() #更新を終了-できます
- 「finished =)」を出力します
ここで、最も単純で最も一般的なユースケースについてもう少し詳しく説明します(想像できる限り)。
まず、progressbar.ProgressBar(maxval = 100)のコンストラクターには、ストリップの最大値を設定する引数maxvalがあります。 全体またはマテリアルのいずれかです。 したがって、実際の数値をprogressbar.ProgressBar.update()に渡すこともできます。
Copy Source | Copy HTML
- #!/ usr / bin / python
- #-*-コーディング:utf-8-*-
- インポートプログレスバー
- 輸入時間
- bar = progressbar.ProgressBar(maxval = 10.0 ).start()
- t = 0.0
- 一方、 t <= 1.0 :
- bar.update(t)
- 時間の睡眠( 0.01 )
- t + = 0.01
- bar.finish()
そして最後に、おいしい:ウィジェットについて。 progressbar.ProgressBar()コンストラクターのもう1つの引数は、ウィジェットの配列です。 各ウィジェットには多くの設定があります。 明らかに、最大数はprogressbar.Barの断片にあります。 次の例から、ウィジェットのセットを簡単かつ自然に使用する方法が明らかです。
Copy Source | Copy HTML
- #!/ usr / bin / python
- #-*-コーディング:utf-8-*-
- インポートプログレスバー
- 輸入時間
- bar = progressbar.ProgressBar(maxval = 10.0 、widgets = [
- 「プログレスバーテスト:」 、 #静的テキスト
- progressbar.Bar(左= '[' 、マーカー= '=' 、右= ']' )、 #進行状況
- progressbar.ReverseBar(左= '[' 、マーカー= '*' 、右= ']' )、 #回帰
- progressbar.SimpleProgress()、 #レタリング「6 out of 10」
- ])。start()
- t = 0.0
- 一方、 t <= 10.0 :
- bar.update(t)
- 時間の睡眠( 0.01 )
- t + = 0.1
- bar.finish()
詳細なドキュメントがモジュールに添付されています。 したがって、開発に問題はないはずです。 最後の例は、すべてのタスクの90%をカバーしていると思います。
モジュールのマイナス面のうち、Windowsコンソールでの作業には消極的です。
xvolandによる UPD :
pypi.python.orgの python-progressbar