2017-06-22 28 views
-1

有沒有辦法在Python中對printf的字符串進行格式化?像這樣的情況下,每次重寫的次數爲x,而不是回顯到新行。在python中的字符串的printf格式

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

在Python 3(戴維·陳的回答適用於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

感謝您的幫助。 –