http 経由でファイルをダウンロードするための小さなアプリケーションを作成しています (たとえば、ここで説明されているように)。
また、ダウンロードの進行状況のパーセンテージを示す小さなダウンロード進行状況インジケーターも含めたいと思います。
これが私が思いついたものです:
sys.stdout.write(rem_file + "...") urllib.urlretrieve(rem_file, loc_file, reporthook=dlProgress) def dlProgress(カウント、ブロックサイズ、合計サイズ): パーセント = int(count*blockSize*100/totalSize) sys.stdout.write("%2d%%" % パーセント) sys.stdout.write("\b\b\b") sys.stdout.flush()
出力: MyFileName... 9%
これを行うための他のアイデアや推奨事項はありますか?
少し厄介なのは、端末のパーセンテージの最初の桁でカーソルが点滅することです。これを防ぐ方法はありますか?カーソルを非表示にする方法はありますか?
編集:
ここでは、dlProgress のファイル名と '\r' コードにグローバル変数を使用するより良い代替手段を示します。
global rem_file # dlProgress で使用するグローバル変数 urllib.urlretrieve(rem_file, loc_file, reporthook=dlProgress) def dlProgress(カウント、ブロックサイズ、合計サイズ): パーセント = int(count*blockSize*100/totalSize) sys.stdout.write("\r" + rem_file + "...%d%%" % パーセント) sys.stdout.flush()
出力: MyFileName...9%
そして、カーソルは行末に表示されます。ずっといい。