Python 2.x如何设置命令执行的超时时间实例


Posted in Python onOctober 19, 2017

前言

在Python2.x中的几个用来执行命令行的库或函数在执行命令是均不能设置一个命令执行的超时时间,用来在命令执行时间超时时终端这个命令的执行,这个功能在3.x(?)中解决了,但是在2.x还是只能自己实现。下面话不多说了,来一起看看详细的介绍吧。

下面就简单实现了一个版本:

import subprocess
from threading import Timer


def call(args, timeout):
 p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

 timer = Timer(timeout, lambda process: process.kill(), [p])

 try:
  timer.start()
  stdout, stderr = p.communicate()
  return_code = p.returncode
  return (stdout, stderr, return_code)
 finally:
  timer.cancel()

测试

print call(['hostname'], 2)
print call(['ping', 'www.baidu.com'], 2)

总结

以上就是这篇文章的全部内容了,本文还有许多不足,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对三水点靠木的支持。

Python 相关文章推荐
python中反射用法实例
Mar 27 Python
Python遍历目录并批量更换文件名和目录名的方法
Sep 19 Python
python实现字典(dict)和字符串(string)的相互转换方法
Mar 01 Python
python如何为创建大量实例节省内存
Mar 20 Python
python调用tcpdump抓包过滤的方法
Jul 18 Python
python3使用flask编写注册post接口的方法
Dec 28 Python
实例讲解Python3中abs()函数
Feb 19 Python
python将三维数组展开成二维数组的实现
Nov 30 Python
pytorch 图像预处理之减去均值,除以方差的实例
Jan 02 Python
python 写一个性能测试工具(一)
Oct 24 Python
python基于pexpect库自动获取日志信息
Feb 01 Python
Python的轻量级ORM框架peewee使用教程
Feb 05 Python
详解使用 pyenv 管理多个版本 python 环境
Oct 19 #Python
python3使用pyqt5制作一个超简单浏览器的实例
Oct 19 #Python
PyQt5利用QPainter绘制各种图形的实例
Oct 19 #Python
python连接数据库的方法
Oct 19 #Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 #Python
python里使用正则的findall函数的实例详解
Oct 19 #Python
详解python里使用正则表达式的全匹配功能
Oct 19 #Python
You might like
php使用ob_start()实现图片存入变量的方法
2014/11/14 PHP
php实现点击可刷新验证码
2015/11/07 PHP
Thinkphp连表查询及数据导出方法示例
2016/10/15 PHP
不要小看注释掉的JS 引起的安全问题
2008/12/27 Javascript
Underscore.js 的模板功能介绍与应用
2012/12/24 Javascript
仿淘宝TAB切换搜索框搜索切换的相关内容
2014/09/21 Javascript
jQuery插件kinMaxShow扩展效果用法实例
2015/05/04 Javascript
浅析四种常见的Javascript声明循环变量的书写方式
2015/10/14 Javascript
理解javascript异步编程
2016/01/27 Javascript
Javascript中prototype的使用详解
2016/06/18 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
JS弹性运动实现方法分析
2016/12/15 Javascript
EasyUi 打开对话框后控件赋值及赋值后不显示的问题解决办法
2017/01/19 Javascript
JS实现侧边栏鼠标经过弹出框+缓冲效果
2017/03/29 Javascript
ES6新特性二:Iterator(遍历器)和for-of循环详解
2017/04/20 Javascript
详解微信小程序input标签正则初体验
2018/08/18 Javascript
Node.js实现用户评论社区功能(体验前后端开发的乐趣)
2019/05/09 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
关于ES6尾调用优化的使用
2020/09/11 Javascript
[05:49]2014DOTA2TI4正赛第二日综述 昔日冠军纷纷落马 VG LGD占尽先机
2014/07/20 DOTA
[55:47]DOTA2上海特级锦标赛C组小组赛#2 LGD VS Newbee第三局
2016/02/27 DOTA
跟老齐学Python之传说中的函数编写条规
2014/10/11 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
Python使用正则表达式分割字符串的实现方法
2019/07/16 Python
基于TensorBoard中graph模块图结构分析
2020/02/15 Python
Django中文件上传和文件访问微项目的方法
2020/04/27 Python
Python使用shutil模块实现文件拷贝
2020/07/31 Python
python 实现IP子网计算
2021/02/18 Python
杭州SQL浙江浙大网新恩普软件有限公司
2013/07/27 面试题
ORACLE十问
2015/04/20 面试题
十周年庆典策划方案
2014/06/03 职场文书
我的中国梦演讲稿600字
2014/08/19 职场文书
安全先进班组材料
2014/12/26 职场文书
生活小常识广播稿
2015/08/19 职场文书
Apache压力测试工具的安装使用
2021/03/31 Servers