Python:检查cmd命令何时完成其任务
当我在另一个python脚本中使用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对象,该对象有多种访问子流程状态和数据的方法: 您可
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脚本?