如何将此shell脚本翻译为python?

时间:2015-11-15 11:55:29

标签: python shell command stdin eof

我想将下面的shell代码翻译成python代码。
subprocess.Popen用于做什么?
我已经尝试过了,但我不明白如何给出(1),(2)命令。

sh> cat a.sh
dc << EOF
  20 5 / p    --(1)
  10 4 * p    --(2)
EOF
sh> sh a.sh
4
40

dc只是一个提问的示例程序。
这可以替换为任何类似的程序。
python版本是2.7.6。 (也许sh模块不包含在这个版本中所以​​我似乎不能使用sh.Command)

1 个答案:

答案 0 :(得分:0)

感谢。

>>> from subprocess import Popen,PIPE,STDOUT
>>> p = Popen(['dc'], stdout=PIPE, stdin=PIPE, stderr=STDOUT)
>>> output = p.communicate(input=b'20 5 / p\n10 4 * p')[0]
>>> print(output.decode())
4
40