在控制台中获取python子进程的输出

在控制台中获取python子进程的输出,python,c,django,Python,C,Django,我使用上面的语句在基于django python的服务器上运行一个C程序进行一些计算,在服务器运行和执行子进程时,有一些printf()语句的输出我希望在stdout上看到,如何做到这一点?如果您实际上不需要将输出作为字符串提供给python代码,您可以使用os.system,或subprocess.call,而无需将stdout重定向到其他地方。然后,C程序的stdout将直接转到python程序的stdout 如果您需要流式stdout和以字符串形式访问输出,则应使用subprocess.P

我使用上面的语句在基于django python的服务器上运行一个C程序进行一些计算,在服务器运行和执行子进程时,有一些
printf()
语句的输出我希望在
stdout
上看到,如何做到这一点?

如果您实际上不需要将输出作为字符串提供给python代码,您可以使用
os.system
,或
subprocess.call
,而无需将
stdout
重定向到其他地方。然后,C程序的
stdout
将直接转到python程序的
stdout


如果您需要流式
stdout
和以字符串形式访问输出,则应使用
subprocess.Popen
(或旧的
popen2.popen4
)获取输出流的文件描述符,然后重复读取流中的行,直到用尽为止。同时,您保留了所获取的所有数据的连接版本。是循环的一个示例。

如果您实际上不需要将输出作为字符串提供给python代码,您可以只使用
os.system
,或
subprocess.call
,而无需在别处重定向
stdout
。然后,C程序的
stdout
将直接转到python程序的
stdout


如果您需要流式
stdout
和以字符串形式访问输出,则应使用
subprocess.Popen
(或旧的
popen2.popen4
)获取输出流的文件描述符,然后重复读取流中的行,直到用尽为止。同时,您保留了所获取的所有数据的连接版本。是循环的一个示例。

如果子流程结束后一切正常,您可以使用-
打印(流程)
?否则,您可能需要使用
Popen
@AnandSKumar。您能否提供一个小示例代码?如果子流程结束后,您可以使用-
打印(流程)
?否则,您可能需要使用
Popen
@AnandSKumar,请提供一个小示例代码
process = subprocess.check_output(BACKEND+"mainbgw setup " + str(NUM_USERS), shell=True,\
                                          stderr=subprocess.STDOUT)