在控制台

时间:2015-07-24 07:11:25

标签: python c django

process = subprocess.check_output(BACKEND+"mainbgw setup " + str(NUM_USERS), shell=True,\
                                          stderr=subprocess.STDOUT)

我使用上面的语句在基于django-python的服务器上运行一个C程序进行一些计算,有一些printf()语句,我希望在stdout上看到输出,而服务器是运行和执行子流程,该怎么做?

1 个答案:

答案 0 :(得分:0)

如果您实际上不需要将输出作为字符串用于您的python代码,则可以使用os.systemsubprocess.call而无需在其他位置重定向stdout。然后你的C程序的stdout将直接进入你的python程序的stdout

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