2016-12-12 8 views
0

の後はかなり正直な質問ですが、これは正しく書式設定するのが難しいです。私はアイテムをダウンロードし、動的なprint()のパーセンテージを提供するコードをいくつか持っています。Python(3.5) - 追加テキストを使用した番号の書式設定

while True: 
    buf1 = resp.read(blocksize) 
    if not buf1: 
     break 
    buf.write(buf1) 
    size += len(buf1) 
    if length: 
     print('Downloading: {:.1f}\r%'.format(size/length*100), end='')# print('{:.2f}'.format(size/length), 'done') 
print() 

のは、今のところは%Downloading 100.0

を印刷だと、印刷ライン

print('Downloading: {:.1f}\r%'.format(size/length*100), end='')

詳しく見てみましょう。しかし、それはちょうど、小数点なしDownloading 100.0%(または多分を印刷するために、私は希望もっとよく見えるかもしれません)

ありがとうございました。おそらく

print('Downloading: {:.1f}%'.format(size/length*100), end='') 

か:あなたは何かしたいようですが、私には見えます

+0

'\ r'は何を意味していますか? '\ r'は、基本的にカーソルを行の先頭に移動するコードにキャリッジリターンを挿入します(そして私はあなたの報告された出力にも注意します...'% 'が上書きされるようです「D」)。 – mgilson

+0

ええ、 '{:.1f}'で '%'をつけてください。 –

+0

印刷物自体は重複しないので、動的です。 '98%'、 '99%' '100%'ではなく '100%'です。 – Kenny

答えて

3

基本的に

print('\rDownloading: {:.1f}%'.format(size/length*100), end='') 

は、あなたがしたいコンテンツの途中で改行を貼り付けています一緒に保つ。キャリッジリターンは、一緒に保持したいコンテンツの前または後のいずれかにする必要があります。

+0

優秀で、 '\ r'を前面に動かすと私のために固定されました。これは、同じステートメント(複数の印刷行ではなく)で0から100までの 'Downloading 100.0%'を読み込みます。私は5分で答えを受け入れるでしょう。再度、感謝します! – Kenny

関連する問題