Python3:在print(str,end ='')中使用“select.select”

时间:2013-11-21 14:44:31

标签: python python-3.x

我使用select.select()而不是输入,因为我想要输入超时。我在print()函数中使用“end”参数,因为我希望我的终端有这样一行:

类型> 在这里输入类型

相反,在我输入字符串并按回车键之后,我才看到“Type>”。

我的代码:

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#Made by Devyn Collier Johnson, NCLA, Linux+, LPIC-1, DCTS
import sys, select

print('Type > ', end=" ")
INPUT, VOID0, VOID1 = select.select([sys.stdin], [], [], 3)

if (INPUT):
    print('You said, ' + sys.stdin.readline().strip())
else:
    print('You said nothing!')

我正在使用此脚本来测试select.select()和print(str,end =“”)。我阅读了这篇文章(How can I suppress the newline after a print statement?)和两个命令的官方Python3文档。

1 个答案:

答案 0 :(得分:1)

stdout默认是缓冲的,强制它显示你需要刷新它:

print('Type > ', end='')
sys.stdout.flush()

请注意,print也支持通过关键字参数:

print('Type > ', end='', flush=True)