Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将os.system的输出发送到web应用程序_Python - Fatal编程技术网

Python 将os.system的输出发送到web应用程序

Python 将os.system的输出发送到web应用程序,python,Python,我正在为机器人开发一个基于网络的控制器。当我运行像os.system'cd/home/tim/tmprcc/这样的命令时;建造;我需要能够将输出发送到web应用程序。如何在Python执行期间捕获输出?用户需要能够看到我的终端上显示的实时输出 您的答案应该有Python代码,每次出现一行输出时都会调用do_something_functionnew_output,其中new_output是到目前为止生成的整个输出。您需要查看模块 请记住,此方法有一些注意事项。直接来自: 警告:请使用通信而不是.

我正在为机器人开发一个基于网络的控制器。当我运行像os.system'cd/home/tim/tmprcc/这样的命令时;建造;我需要能够将输出发送到web应用程序。如何在Python执行期间捕获输出?用户需要能够看到我的终端上显示的实时输出


您的答案应该有Python代码,每次出现一行输出时都会调用do_something_functionnew_output,其中new_output是到目前为止生成的整个输出。

您需要查看模块

请记住,此方法有一些注意事项。直接来自:

警告:请使用通信而不是.stdin.write、.stdout.read或.stderr.read,以避免由于任何其他操作系统管道缓冲区填满并阻塞子进程而导致死锁


有关更多信息,请参阅。

网站的设计不适合实时更新。除非您深入研究AJAX和COMET技术。不过,现在您可以尝试WebSocket,这可能会奏效,但您也必须编写一些Javascript。os.system会将命令的输出发送到sys.stdout和/或sys.stderr,改用。Keith,我使用的是Ajax。F.J.如果能看到一些示例代码就好了。我更新了我的问题,提到这一点。也可能有用,请参阅公认的答案。它甚至有一些示例代码:-
import subprocess

cmd = subprocess.Popen(['cd', '/home/time/tmprcc;', 'ino', 'build;',
                        'ino', 'upload;'], stdout=subprocess.PIPE)

while cmd.poll() is None:
    new_output = cmd.stdout.readline()
    do_something_function(new_output)