[英]redirecting standard output to the calling process
我没有bash专家所以请耐心等待
我有一个python脚本启动其他进程,然后在stdout上发出日志消息。
我将使用什么bash命令将这些子进程的stdout重定向回父进程的stdout(启动进程的python脚本)?
先感谢您
如果你只是想捕捉你的python脚本的子进程的输出,最好的方式做到这一点是使用的subprocess
模块:
import subprocess
p = subprocess.Popen(['/bin/ls', '-l'], stdout=subprocess.PIPE)
(out, _) = p.communicate()
print "Output:", out
我假设您正在使用os.system("command")
来执行脚本。 此方法仅执行命令并为您提供程序的返回值,而不是它的标准输出。 你需要的是子进程模块。 例如:
import subprocess
proc = subprocess.Popen(['command', 'option 1', 'option 2'], stdout=subprocess.PIPE)
output = proc.communicate()[0] #for stdout. Use proc.communicate[1] for stderr
在查看您的评论时,您的解决方案很简单:
subprocess.Popen('command option 1 option 2', shell=True)
注意:命令需要作为字符串传递。 序列不起作用。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.