mlz*_*boy 53 python redirect stdin stdout
在Python中,如何检查是否sys.stdin有数据?
我发现不仅os.isatty(0)可以检查stdin是否连接到TTY设备,还可以检查是否有可用的数据.
但如果有人使用像
sys.stdin = cStringIO.StringIO("ddd")
Run Code Online (Sandbox Code Playgroud)
在使用之后os.isatty(0),它仍然返回True.我需要做些什么来检查stdin是否有数据?
Rak*_*kis 66
在Unix系统上,您可以执行以下操作:
import sys
import select
if select.select([sys.stdin,],[],[],0.0)[0]:
print "Have data!"
else:
print "No data"
Run Code Online (Sandbox Code Playgroud)
在Windows上,select模块可能只与套接字一起使用,因此您需要使用替代机制.
lia*_*ang 53
我一直在用
if not sys.stdin.isatty()
Run Code Online (Sandbox Code Playgroud)
这是一个例子:
4 import sys
5
6 def main():
7 if not sys.stdin.isatty():
8 print "not sys.stdin.isatty"
9 else:
10 print "is sys.stdin.isatty"
>echo "asdf" | stdin.py
not sys.stdin.isatty
Run Code Online (Sandbox Code Playgroud)
如果stdin中存在某些内容,则sys.stdin.isatty()返回false.
isatty(...)
isatty() -> true or false. True if the file is connected to a tty device.
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
42602 次 |
| 最近记录: |