我正在寻找一种方法来确定输入是否来自另一个应用程序的管道。假设我有一个程序,它可以从管道输入数据(当您从其他应用程序 - grep、tail等中进行管道处理时),或者使用默认数据文件。我不希望用户在提示时手动填写数据,因为没有stdin被管道处理。下面是一个简单的代码示例:
当我使用以下代码运行脚本时:
这种情况是否可能?谢谢。
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"
这种情况是否可能?谢谢。