我不是bash专家所以忍受我
我有一个python脚本启动其他进程,然后在stdout上发出日志消息 我将使用什么bash命令将这些子进程的stdout重定向回父进程的stdout(启动进程的python脚本)?
提前谢谢
答案 0 :(得分:3)
如果您只想捕获python脚本中子进程的输出,最好的方法是使用subprocess
模块:
import subprocess
p = subprocess.Popen(['/bin/ls', '-l'], stdout=subprocess.PIPE)
(out, _) = p.communicate()
print "Output:", out
答案 1 :(得分:1)
我假设您正在使用os.system("command")
来执行脚本。此方法仅执行命令并为您提供程序的返回值,而不是它的标准输出。您需要的是subprocess模块。例如:
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)
注意:命令需要作为字符串传递。序列不起作用。