在Python中,如何检查是否sys.stdin有数据?
sys.stdin
我发现不仅os.isatty(0)可以检查stdin是否已连接到TTY设备,还可以检查是否有可用数据。
os.isatty(0)
但是如果有人使用诸如
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模块只能与套接字一起使用,所以您需要使用其他机制。