process = subprocess.check_output(BACKEND+"mainbgw setup " + str(NUM_USERS), shell=True,\
stderr=subprocess.STDOUT)
我使用上面的语句在基于django-python的服务器上运行一个C程序进行一些计算,有一些printf()
语句,我希望在stdout
上看到输出,而服务器是运行和执行子流程,该怎么做?
答案 0 :(得分:0)
如果您实际上不需要将输出作为字符串用于您的python代码,则可以使用os.system
或subprocess.call
而无需在其他位置重定向stdout
。然后你的C程序的stdout
将直接进入你的python程序的stdout
。
如果您需要流式传输stdout
并以字符串形式访问输出,则应使用subprocess.Popen
(或旧的popen2.popen4
)来获取输出流的文件描述符,然后重复读取流中的行,直到你筋疲力尽。与此同时,您保留了所有数据的连接版本。 This是循环的一个例子。