2017-06-22 4 views
-1

printfをPythonの文字列にフォーマットする方法はありますか?新しい行にエコーするのではなく、毎回xが書き直されるようなものです。Pythonの文字列をprintfでフォーマットする

のPython 3では
x=0 
while [[ $x -lt 10 ]]; do 
    x=$((x+1)) 
    printf '%s\r'"Processing page ${x}" 
    sleep 1 
done 
+0

[this](https://pyformat.info/)のような意味ですか? –

+0

この質問に対する答えは、使用しているPythonのバージョンによって異なります。 Python2またはPython3を使用していますか? –

+0

@Robᵩ私はPython2を使用しています –

答えて

1

(Daiwei陳さんの答えはまた、Pythonの2.6+をカバー):

import time 
x = 0 
while x < 10: 
    x += 1 
    print('\rProcessing Page {0}'.format(x), end='') 
    time.sleep(1) 

先頭に改行を追加し、end=''で端から新しい行を削除すると、現在の行を上書きします。

+0

あなたの解決策はPython3固有のものであると言えるかもしれませんし、Python2とPython3の両方で動作する解決策を提供することもできます。 –

+0

はい、私はちょうど今思い出した – ZuluDeltaNiner

+0

助けてくれてありがとう。 –

1

Python 3.xでは、print関数はendパラメータの追加引数を取ります。もちろん

>>> print('foo', end='') 
foo 

>>> for i in range(10): 
print('foo', end='') 
foofoofoofoofoofoofoofoofoofoo 

、あなたは、Python> = 2.6を使用している場合、あなたは__future__からprint_functionをインポートする必要があります。

>>> from __future__ import print_function 
+0

ありがとうございました。 –

関連する問題