rod*_*dds 12 python sleep flush python-3.x
我在Python 3.1上编写了一个简单的程序,我偶然发现了这个:
如果我在IDLE上运行它,它按预期工作 - 打印"Initializing."然后添加两个点,每秒一个,并等待输入.
from time import sleep
def initialize():
print('Initializing.', end='')
sleep(1)
print(" .", end='')
sleep(1)
print(" .", end='')
input()
initialize()
Run Code Online (Sandbox Code Playgroud)
问题是,当我双击.py来执行文件时,它运行在python.exe而不是pythonw.exe上,并发生奇怪的事情:它一直加入,sleep()即让我等待2秒,然后打印整个字符串Initializing. . .一下子.为什么会这样?有没有办法避免终端发生这种情况?如果我在windows和linux中使用IDLE,它工作正常.
Joh*_*ooy 21
这是因为输出正在缓冲.
你应该sys.stdout.flush()在每次写入后添加一个
| 归档时间: |
|
| 查看次数: |
22200 次 |
| 最近记录: |