一部のプログラムはコンソール出力を修正できますが、wgetは簡単に思い浮かびます。
どうすれば純粋なPythonでそれを行うことができますか? IPythonには clear_output() があります。私はそれを試しましたが、それでもうまくいきません。そして、私は純粋なPythonを好むでしょう。
from IPython.core.display import clear_output
from time import sleep
for i in range(100):
clear_output()
print '[', '='*i, ' '*(100-i), ']'
sleep(0.1)
実際には、コマンドラインインターフェイスを作成できるパッケージがいくつかあります。 クリックには進行状況バーがあります を知っています。
ああ、あなたの要件「純粋なpython」に関して、私の友人はPythonでないものです。 Pythonは、サードパーティのパッケージを使用することを望んでいます。
適切なライブラリが最善の解決策ですが、簡単な代替案を示したいと思います。行末に\r
(改行)の代わりに\n
(キャリッジリターン)を使用して、カーソルが現在の行の先頭に配置されるようにします、次の行ではなく。
#! /usr/bin/python3
from time import sleep
for i in range(100):
print('[' + '='*i + ' '*(100-i) + ']', end='\r')
sleep(0.1)
Helioにヒントを得たソリューションは素晴らしい作品です!最初にpip install progressbar
する必要がありましたが、公式の例の1つは魅力のように機能します。
from progressbar import *
pbar = ProgressBar(widgets=[Percentage(), Bar()], maxval=300).start()
for i in range(300):
time.sleep(0.01)
pbar.update(i+1)
pbar.finish()
公式サイト(例付き): https://code.google.com/p/python-progressbar/