标签:
Popen对象
import time import subprocess class TimeoutError(Exception): pass def command(cmd, timeout=60): """执行命令cmd,返回命令输出的内容。 如果超时将会抛出TimeoutError异常。 cmd - 要执行的命令 timeout - 最长等待时间,单位:秒 """ p = subprocess.Popen(cmd, stderr=subprocess.STDOUT, stdout=subprocess.PIPE, shell=True) t_beginning = time.time() seconds_passed = 0 while True: if p.poll() is not None: break seconds_passed = time.time() - t_beginning if timeout and seconds_passed > timeout: p.terminate() raise TimeoutError(cmd, timeout) time.sleep(0.1) return p.stdout.read() if __name__ == "__main__": print command(cmd=‘ping www.redicecn.com‘, timeout=1)
Python subprocess + timeout的命令执行
标签:
原文地址:http://www.cnblogs.com/zshaox/p/5890071.html