判断subprocess调起的shell命令是否结束

前言

最近在使用subprocess遇到个问题,折腾了好半天才找到简单的解决办法,在这里记录下。

环境

Python:2.7.10
库:subprocess, logging

问题

使用subprocessPopen类来执行shell命令,要怎么样才能知道命令执行结束了,以此来执行回调方法。

解决办法

使用subprocess.Popen.poll方法来获取命令的执行情况。

poll方法的返回值有两种情况
  1. 当命令未运行结束的时候,返回None
  2. 当命令结束时,返回命令的返回值

演示

这里使用logging模块来辅助显示命令执行时间
logging模块设置

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

  1. shell=True
    判断subprocess调起的shell命令是否结束_第1张图片
  2. shell=False
    判断subprocess调起的shell命令是否结束_第2张图片

完整演示
判断subprocess调起的shell命令是否结束_第3张图片

你可能感兴趣的:(白菜系列--Python,subprocess,shell命令,运行结束,回调)