【发布时间】:2014-11-22 18:31:39
【问题描述】:
我正在寻找一种方法来确定stdin 输入是否通过管道来自另一个应用程序。
假设我有一个程序要么接受来自管道标准输入的输入数据(当您从另一个应用程序管道它时 - grep、tail、...)或者它使用默认数据文件。我不希望用户在提示时手动填写数据,因为没有标准输入管道。
我的简单代码示例如下所示:
from sys import stdin
for line in stdin:
print line
当我使用这个运行脚本时:
echo "data" | python example.py
我明白了
data
脚本结束。
如果我按以下方式运行脚本,
python example.py
它提示用户填写输入并等待。
因此,我正在寻找类似以下的内容,以避免在没有数据传输时出现提示。
from sys import stdin
if is_stdin_piped():
for line in stdin:
print line
else:
print "default"
这样的事情可能吗?谢谢
【问题讨论】: