如何生成一个shell子命令,其stdout绑定到python中的父级stdout

时间:2014-02-17 06:04:59

标签: python subprocess

我想要一个python程序来生成一个shell子命令,shell的stdout被写入python父项的stdout。

python脚本将作为CGI运行,因此shell输出应该发送回浏览器。

1 个答案:

答案 0 :(得分:0)

正如python subprocess module docs告诉(强调我的)

  

stdin,stdout和stderr分别指定执行程序的标准输入,标准输出和标准错误文件句柄。有效值为PIPE,现有文件描述符(正整数),现有文件对象和无。 PIPE表示应该创建一个新的子管道。 默认设置为None,不会发生重定向;子项的文件句柄将从父项继承。此外,stderr可以是STDOUT,它表示来自子进程的stderr数据应该被捕获到与stdout相同的文件句柄中。

所以,它应该像

一样简单
subprocess.call(["your_shell_command", /*command line arguments, if any*/])

E.g。

subprocess.call(["ls", "-l"])
subprocess.call(["mkdir", "newdir"])
subprocess.call("your_shell_script.sh")