我使用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文档。
答案 0 :(得分:1)
stdout
默认是缓冲的,强制它显示你需要刷新它:
print('Type > ', end='')
sys.stdout.flush()
请注意,print
也支持通过关键字参数:
print('Type > ', end='', flush=True)