这是运行任意命令以返回其stdout数据或在非零退出代码上引发异常的Python代码:
proc = subprocess.Popen(
cmd,
stderr=subprocess.STDOUT, # Merge stdout and stderr
stdout=subprocess.PIPE,
shell=True)
communicate
用于等待进程退出:
stdoutdata, stderrdata = proc.communicate()
该subprocess
模块不支持超时-杀死运行时间超过X秒的进程的能力-因此communicate
可能需要永远运行。
在打算在Windows
和Linux
上运行的Python程序中实现超时的最简单方法是什么?
在Python 3.3+中:
from subprocess import STDOUT, check_output
output = check_output(cmd, stderr=STDOUT, timeout=seconds)
output
是一个字节字符串,其中包含命令的合并标准输出,标准错误数据。
check_output
加注CalledProcessError
在不同问题的文本中指定的非零退出状态proc.communicate()
的方法。
我已删除,shell=True
因为它经常被不必要地使用。如果cmd确实需要,可以随时将其添加回去。如果添加,shell=True
即子进程是否产生了自己的后代;check_output()
可以比超时指示晚得多返回,请参阅子进程超时失败。
超时功能可在Python 2.x
上通过subprocess323.2+
子进程模块的反向端口使用。
本文向大家介绍Python使用urllib模块的urlopen超时问题解决方法,包括了Python使用urllib模块的urlopen超时问题解决方法的使用技巧和注意事项,需要的朋友参考一下 在新的公司开始上班,今天工作的主题内容是市场部门需要抓取一些论坛用户的邮箱,以便发送营销邮件。 于是用了一个python脚本来执行,前面抓了几个都没有什么问题,后来碰到一个论坛,在执行urlopen的地方总是
本文向大家介绍python xlsxwriter模块的使用,包括了python xlsxwriter模块的使用的使用技巧和注意事项,需要的朋友参考一下 1.workbook类 add_worksheet 用于添加一个新的工作表,sheetname为工作表名称,默认是sheet1,例如: add_format 用于在工作表中创建一个新的格式对象来格式化单元格 add_chart 用于
问题内容: 我正在优化复杂模拟的参数。我使用多处理模块来增强优化算法的性能。我在http://pymotw.com/2/multiprocessing/basics.html上了解了多处理的基础知识。复杂的模拟根据优化算法中给定的参数持续不同的时间,大约1到5分钟。如果参数选择不正确,则模拟可能会持续30分钟或更长时间,结果将无用。因此,我正在考虑为多处理建立超时,该超时将终止所有持续超过定义时间
我在stackoverflow上看到过一种使用zip文件存储引用的python模块来执行hadoop流作业的技术。 在执行作业的映射阶段,我遇到了一些错误。我相当确定它与zip'd模块加载有关。 为了调试脚本,我使用命令行管道通过sys.stdin/sys.stdout运行我的数据集,进入我的映射器和缩减器,如下所示: 输入数据文件的头。txt|./映射器。py |排序-k1,1|./reduce
本文向大家介绍python os模块和fnmatch模块的使用介绍,包括了python os模块和fnmatch模块的使用介绍的使用技巧和注意事项,需要的朋友参考一下 一、先介绍一下os模块 1、拆分路径的方法介绍 2、构建文件路径的方法介绍 3、获取文件属性的方法介绍 4、判断文件的类型 5、文件和目录操作 6、修改文件属性和判断文件属性 7、遍历目录树 二、fnmatch模块介绍 1、fnma
本文向大家介绍Python hashlib模块的使用示例,包括了Python hashlib模块的使用示例的使用技巧和注意事项,需要的朋友参考一下 一.hashlib模块 用于加密相关的操作,3.x里代替了md5模块和sha模块,主要提供 :SHA1,SHA224,SHA256,SHA384,SHA512,MD5算法。 1.使用hashlib模块进行MD5加密。 注:hashlib.md5():创