繁体   English   中英

为什么 Python 打印字符串这么慢?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM