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通过ssh-powershell监控windows的方法
Jun 02 Python
详解Python中open()函数指定文件打开方式的用法
Jun 04 Python
Python 文件操作的详解及实例
Sep 18 Python
python3+dlib实现人脸识别和情绪分析
Apr 21 Python
python sys.argv[]用法实例详解
May 25 Python
浅谈django的render函数的参数问题
Oct 16 Python
python 检查是否为中文字符串的方法
Dec 28 Python
Python文件读写常见用法总结
Feb 22 Python
Python 获取windows桌面路径的5种方法小结
Jul 15 Python
Django框架 信号调度原理解析
Sep 04 Python
python实现简易学生信息管理系统
Apr 05 Python
pygame实现烟雨蒙蒙下彩虹雨
Nov 11 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
模拟xcopy的函数
2006/10/09 PHP
PHP中Date()时间日期函数的使用方法小结
2011/04/20 PHP
PHP 实现手机端APP支付宝支付功能
2018/06/07 PHP
php微信开发之谷歌测距
2018/06/14 PHP
简单实用的js调试logger组件实现代码
2010/11/20 Javascript
jQuery 获取兄弟元素的几种不错方法
2014/05/23 Javascript
我的NodeJs学习小结(一)
2014/07/06 NodeJs
理解jQuery stop()方法
2014/11/21 Javascript
理解和运用JavaScript的闭包机制
2015/08/13 Javascript
javascript实现网页中涉及的简易运动(改变宽高、透明度、位置)
2015/11/29 Javascript
js实现的下拉框二级联动效果
2016/04/30 Javascript
AngularJS教程 ng-style 指令简单示例
2016/08/03 Javascript
vue.js入门教程之绑定class和style样式
2016/09/02 Javascript
浅析js的模块化编写 require.js
2016/12/07 Javascript
详解vue slot插槽的使用方法
2017/06/13 Javascript
jquery在启动页面时,自动加载数据的实例
2018/01/22 jQuery
vue实现下拉加载其实没那么复杂
2019/08/13 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
2020/03/31 Javascript
基于JS实现视频上传显示进度条
2020/05/12 Javascript
Vue + Element-ui的下拉框el-select获取额外参数详解
2020/08/14 Javascript
[54:26]完美世界DOTA2联赛PWL S3 Forest vs Rebirth 第一场 12.10
2020/12/12 DOTA
用Python编写一个简单的FUSE文件系统的教程
2015/04/02 Python
Python自动发送邮件的方法实例总结
2018/12/08 Python
python中对数据进行各种排序的方法
2019/07/02 Python
最新2019Pycharm安装教程 亲测
2020/02/28 Python
CSS3中Color的一些特性介绍
2012/05/27 HTML / CSS
HTML5 Blob 实现文件下载功能的示例代码
2019/11/29 HTML / CSS
Kidsroom台湾:来自德国的婴儿用品
2017/12/11 全球购物
师生聚会感言
2014/01/26 职场文书
先进员工获奖感言
2014/08/14 职场文书
大学迎新生标语
2014/10/06 职场文书
分享:关于学习的励志名言赏析
2019/08/16 职场文书
辞职报告(范文三篇)
2019/08/27 职场文书
CSS布局之浮动(float)和定位(position)属性的区别
2021/09/25 HTML / CSS
golang实现一个简单的websocket聊天室功能
2021/10/05 Golang
草系十大最强宝可梦,纸片人上榜,榜首大家最熟悉
2022/03/18 日漫