nic*_*b96 6 stdin input nonblocking python-3.x
我想要一种跨平台的方式以非阻塞方式从stdin读取输入。
这样的事情(无阻塞套接字就是这样做的):
while True
try:
string = input("> ")
except BlockingIOError:
pass
else:
print(f"you typed {string}")
Run Code Online (Sandbox Code Playgroud)
我不是在问原始模式与熟模式。熟模式是默认的行为,行缓冲标准输入,原始模式使字符在输入时可用于输入流。
我想要的是一种从平台上读取stdin的独立于平台的方式,如果还没有要读取的数据,则不阻止它。同样,我不必担心必须按Enter键才能将字符提供给流。我只是不希望stdin中没有任何内容时该程序完全停止。
我也会对异步方法感到满意。或者像上面的例子那样抛出BlockingIOError的东西。或类似Java的Scanner.hasNextLine()之类的东西,它返回一个布尔值,表示stdin是否具有要读取的数据。
我不希望使用诸如线程或子流程之类的笨重解决方案。
| 归档时间: |
|
| 查看次数: |
991 次 |
| 最近记录: |