我正在爲我的上傳腳本做一個進度條,因此我想打印一行多個'#'但我無法使其工作。當我告訴Python不添加換行符時,它確實將其刪除,但它在函數下無法正常工作。在Python 3中使用「print」('#',end ='')「或在Python 2中使用」print'#'「,但是在函數中執行時,它不會打印任何內容,直到整個函數完成,它不應該像正常打印一樣等待。在沒有換行的情況下打印功能在Python中不起作用
import time
i = 0
def status():
print('#', end='')
while i < 60:
status()
time.sleep(1)
i += 1
這應該打印「#」每一秒,但事實並非如此。它在60秒後全部打印出來。使用print('#')按預期每秒打印一次。我真的需要解決這個問題。請幫忙!
解決方案: 「sys.stdout.flush()」 每個打印:)
你爲什麼試圖重新發明輪子? http://pypi.python.org/pypi/fish/ – 2011-02-24 06:27:25
我使用基於[this](http://nadiana.com/animated-terminal-progress-bar-in-python)的解決方案,它非常酷, imo :) – simon 2011-02-24 06:54:37
很酷的東西。但我的進度條實際上是陰莖,所以我最小的解決方案效果最好:) – ggustafsson 2011-02-24 07:42:33