在 Python 中,如何检查 sys.stdin 是否有数据?

我发现 os.isatty(0) 不仅可以检查 stdin 是否连接到 TTY 设备,还可以检查是否有可用数据。

但是如果有人使用诸如

sys.stdin = cStringIO.StringIO("ddd")

在使用 os.isatty(0) 之后,它仍然返回 True。我需要做什么来检查 stdin 是否有数据?

最佳答案

在 Unix 系统上,您可以执行以下操作:

import sys
import select

if select.select([sys.stdin,],[],[],0.0)[0]:
    print "Have data!"
else:
    print "No data"

在 Windows 上, select 模块只能与套接字一起使用,因此您需要使用替代机制。

关于python - 如何检查 stdin 是否有一些数据?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/3762881/

10-16 06:31