python 版本 2.5.4 (在高版本python中提倡使用 subprocess.Popen 取代 os.popen)

os.popen 会出现过长时间等待导致阻塞问题, 解决方法如下:

[python] view plain copy print?

def TIMEOUT_COMMAND(command, timeout):

"""call shell-command and either return its output or kill it

if it doesn't normally exit within timeout seconds and return None"""

import subprocess, datetime, os, time, signal

cmd = command.split(" ")

start = datetime.datetime.now()

process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

while process.poll() is None:

time.sleep(0.2)

now = datetime.datetime.now()

if (now - start).seconds> timeout:

os.kill(process.pid, signal.SIGKILL)

os.waitpid(-1, os.WNOHANG)

return None

return process.stdout.readlines()

原文出自:http://blog.csdn.net/cenziboy/article/details/8298844

python os popen_【转】python os.popen 超时问题相关推荐

  1. python调用Shell脚本:os.system(cmd)或os.popen(cmd),

    python调用Shell脚本,有两种方法:os.system(cmd)或os.popen(cmd),前者返回值是脚本的退出状态码,后者的返回值是脚本执行过程中的输出内容.实际使用时视需求情况而选择. ...

  2. python操作系统接口错误_Python os模块和sys模块 操作系统的各种接口

    '''os.getcwd() 获取当前工作目录,即当前python脚本工作的目录路径 os.chdir("dirname") 改变当前脚本工作目录:相当于shell下cd os.c ...

  3. (转载)python调用shell命令之os 、commands、subprocess

    linux系统下进入python交互式环境: 一.os 模块 1.1.os模块的exec方法簇: python交互界面中: In [1]: import osIn [2]: os.exec os.ex ...

  4. python学习之老男孩python全栈第九期_day019知识点总结——collections模块、时间模块、random模块、os模块、sys模块...

    一. collections模块 在内置数据类型(dict.list.set.tuple)的基础上,collections模块还提供了几个额外的数据类型:namedtuple.deque.Counte ...

  5. Python初级第2课——os模块(只读课堂)

    欢迎来到"只读课堂"! 这个模块和文件操作一样,使用它,可以与我们当前的系统进行交互. OS模块简单介绍 os模块主要有以下几种:posix(适用于unix操作系统) nt(win ...

  6. Python标准库中的os模块

     Python的标准库中的os模块包含普遍的操作系统功能.如果你希望你的程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后不需要任何改动,也不会发生任何问题,就可以在Linux ...

  7. Python常用模块2-Python的OS及errno模块

    文章目录 一.Python OS及errno模块简介 1.1 OS模块介绍 1.2 errno模块 二.Python的OS及errno模块实操 参考 一.Python OS及errno模块简介 以下整 ...

  8. python getostime_python中sys,os,time模块的使用(包括时间格式的各种转换)

    sys模块 sys.argv: 实现从程序外部向程序传递参数. 位置参数argv[0]代表py文件本身,运行方法 python xx.py 参数1,参数2 .. self = sys.argv[0] ...

  9. python中import os_python import os

    OS相关 import os 可以用help(os); dir(os)查看 os.sep 可以取代操作系统特定的路径分割符. os.name字符串指示你正在使用的平台.比如对于Windows,它是'n ...

  10. python split(), os.path.split()和os.path.splitext()函数的区别

    python split(), os.path.split()和os.path.splitext()函数的区别 文章目录: 1. split() 2. os.path.split() 3. os.pa ...

最新文章

  1. [持续更新][小工具]计算器
  2. struts2 hibernate登录
  3. 华为RH2288V3服务器部署指南
  4. bash 2_quantize.sh遇到错误2_quantize.sh: line 7: 29380 Segmentation fault解决方法
  5. linux恢复终端默认配置,以gnome-terminal为例,修改gnome3 的默认配置,
  6. php7 fastcgi安装,安装windows 下 php7+nginx+fastcgi
  7. ssis修改数据库数据_SSIS平衡数据分配器概述
  8. Flutter进阶—质感设计之弹出菜单
  9. jmeter 连接 sqlite 进行压力测试
  10. 程序人生,程序猿要把编程一直学习下去吗?
  11. windows下OpenCV扩展模块(Extra Contrib)配置时的“Invalid escape sequence \o“解决方法
  12. ubuntu 16.04外接显示屏问题
  13. python文件打开模式rb表示以只读模式打开文件_【Python】python文件打开方式详解——a、a+、r+、w+、rb、rt区别
  14. 网站服务器iis7.5配置,IIS 7.5 配置伪静态
  15. NLP会议介绍 2019
  16. 如何在win7 64下安装ipython notebook
  17. Win7多用户下开机只显示一个用户
  18. 【三石jQuery视频教程】03.创建垂直时间表(Timeline)
  19. 好看无边框网站通用的文字源码 广告代码
  20. Play框架最快上手!

热门文章

  1. openwt dns 解析部分域名出错问题。
  2. 矩形法求定积分c语言流程图,矩形法求定积分其程序与程序框图的实现.doc
  3. 表情识别------CNN训练fer2013数据集
  4. 知网CAJ论文 如何转换成pdf
  5. python画图颜色填充_【Python】Matplotlib画图(十一)——箱线图
  6. 步进电机c语言驱动原理,《步进电机【驱动电路+C语言驱动程序】》.doc
  7. js判断两个时间是否超过一年
  8. java网课|等待与唤醒线程池
  9. c语言程序压缩解压缩文件夹,【转】使用VC++压缩解压缩文件夹
  10. 31. Git与Github