前言
最近在使用subprocess遇到个问题,折腾了好半天才找到简单的解决办法,在这里记录下。
环境
Python:2.7.10
库:subprocess, logging
问题
使用subprocess的Popen类来执行shell命令,要怎么样才能知道命令执行结束了,以此来执行回调方法。
解决办法
使用subprocess.Popen.poll方法来获取命令的执行情况。
poll方法的返回值有两种情况
1. 当命令未运行结束的时候,返回None
2. 当命令结束时,返回命令的返回值
演示
这里使用logging模块来辅助显示命令执行时间

分别使用两种调用shell命令的方式来测试
shell=True

shell=False

完整演示

本文介绍如何使用Python的subprocess库监测外部命令的执行状态。通过Popen类的poll方法可以有效判断命令是否完成,并据此执行回调操作。文章提供了一个使用logging模块记录执行时间的示例,展示了不同调用方式(shell=True与shell=False)的区别。
2172

被折叠的 条评论
为什么被折叠?



