【发布时间】:2019-05-01 15:30:45
【问题描述】:
我正在尝试在 Python 脚本中读取标准输入,同时从管道接收。
我使用了这些行:
for line in sys.stdin:
print line
并运行脚本:echo "test" | script.py
到目前为止,它工作正常。但是,如果我不使用管道,程序会停留在for 命令上。这意味着调用:./script.py 将使脚本不起作用。我该如何解决这个问题?
【问题讨论】:
-
如果你调用
./script.py,程序应该应该做什么?直接终止而不进入循环? -
不,它应该从函数返回并继续运行脚本的其余部分
-
对不起,我的印象是
for line in sys.stdin: print line是你的整个程序。有功能吗?请分享您的整个代码。 -
如果你运行
python script.py并输入几行应该回显的内容。然后按CTRL+D? -
一个更好的标题是 "Read Python stdin without blocking on empty input"
标签: python pipe stdin blocking nonblocking