[英]Why is Python printing strings so slowly?
说我有这个代码:
import time
import sys
for i in range(1000):
sys.stdout.write(str(i)+'\r')
sys.stdout.flush()
time.sleep(0.01)
我希望它在一行中打印 0-999,我将能够看到每个数字。 但实际上 Python 的刷新速度会非常缓慢(看似 5Hz),结果会从 5 跳到 17 到 87 到 99,等等。
有没有一种方法可以在一行中立即打印? 我正在使用 Pycharm,我尝试了 Python 的股票 IDLE,但它根本不起作用。 它甚至不会在一行中打印。
这将打印每个数字:
import time
import sys
for i in range(1000):
print(str(i) , '\r', end='')
time.sleep(0.01)
这将在“新行”上打印每个数字
import time
import sys
for i in range(1000):
print(str(i)+'\r')
time.sleep(0.01)
如果要在同一行上打印所有数字,以空格分隔(直到循环“结束”才会显示):
import time
import sys
for i in range(1000):
print(str(i), " ", end = ''),
time.sleep(0.01)
要打印“状态行”,请使用:
from time import sleep
import sys
for i in range(21):
sys.stdout.write('\r')
sys.stdout.write("[%-20s] %d%%" % ('='*i, 5*i))
sys.stdout.flush()
sleep(0.25)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.