如何检查stdin是否包含一些数据?

发布于 2021-01-29 19:34:51

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

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

但是如果有人使用诸如

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

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

关注者
0
被浏览
58
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

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

    在Windows上,虽然select模块只能与套接字一起使用,所以您需要使用其他机制。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看