从shell提供python脚本的输入?

时间:2013-02-19 18:59:59

标签: python shell

我正在尝试编写一个shell脚本,该脚本将运行一个带有一些原始输入的python文件。 python脚本基本上是:

def main():
    name=raw_input("What's your name?")
    print "Hello, "+name
main()

我希望shell脚本运行脚本并自动将输入提供给它。我已经看到很多方法可以从python函数返回的内容中获取shell输入,或者如何使用输入从python运行shell,但不是这样。基本上,我只想要做的事情:

python hello.py
#  give the python script some input here
#  then continue on with the shell script.

2 个答案:

答案 0 :(得分:4)

你的意思是:

python hello.py <<EOF
Matt
EOF

这称为bash HERE document

答案 1 :(得分:0)

提供原始输入确实没有比sys.stdin更好的方法。它也是跨平台的。

import sys
print "Hello {0}!".format(sys.stdin.read())

然后

echo "John" | python hello.py # From the shell
python hello.py < john.txt # From a file, maybe containing "John"