Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.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:检查cmd命令何时完成其任务_Python_Real Time - Fatal编程技术网

Python:检查cmd命令何时完成其任务

Python:检查cmd命令何时完成其任务,python,real-time,Python,Real Time,当我在另一个python脚本中使用subprocess.Popen(script,shell=True)执行python脚本时,在执行其他函数之前,是否可以在脚本完成运行时向python发出警报 另一方面,我可以获得已执行python脚本的实时输出吗? 我只能通过执行command>output.txt从中获取输出,但这只是在整个过程结束之后stdout不grep任何输出。使用Popen创建子流程时,它返回一个subprocess.Popen对象,该对象有多种访问子流程状态和数据的方法: 您可

当我在另一个python脚本中使用
subprocess.Popen(script,shell=True)
执行python脚本时,在执行其他函数之前,是否可以在脚本完成运行时向python发出警报

另一方面,我可以获得已执行python脚本的实时输出吗?

我只能通过执行
command>output.txt
从中获取输出,但这只是在整个过程结束之后
stdout
不grep任何输出。

使用Popen创建子流程时,它返回一个
subprocess.Popen
对象,该对象有多种访问子流程状态和数据的方法:

  • 您可以使用
    poll()
    确定子流程是否已完成<代码>无表示进程已结束
  • 可以使用
    communicate()
    检索脚本运行时的输出
您可以将这两者结合起来创建一个脚本,用于监视子流程的输出,并等待其就绪,如下所示:

import subprocess

p = subprocess.Popen((["python", "script.py"]), stdout=subprocess.PIPE)

while p.poll() is None:
    (stdout, stderr) = p.communicate()
    print stdout

你想等波本结束吗?你有没有试过这样做:

popen = subprocess.Popen(script, shell=True)
popen.wait()
您是否考虑过使用外部python脚本将其作为模块导入,而不是生成子流程


至于实时输出:请尝试
python-u…

是否要通知生成子流程的原始流程?或者是否有一个单独的进程来监视脚本的执行?换句话说:您只是在寻找一个简单的“等待脚本执行”,还是希望与子流程并行运行Python脚本?