python写流程控制的时候,有时需要等待运行结果完成才能进行下一步。有几个想法:

  • 一是反复循环判断直到生成结果文件(且文件中有预期结果),低效易出错;
  • 二是用subprocess模块来判断进程结果,较为常用;
  • 三是用drmaa包,功能强大,但使用相对复杂。

这次介绍如何用subprocess来实现。subprocess中的poll函数有以下几种返回码:

  • 0 正常结束
  • 1 sleep
  • 2 子进程不存在
  • 5 kill
  • None 在运行

示例代码:

import subprocess

proc = subprocess.Popen(['python', 'test.py'], stdout=subprocess.PIPE)
while True:
flag = 1
if proc.poll() is None:
flag = 0
if flag:
break
else:
print("Task is running")
time.sleep(100)

https://www.cnblogs.com/nerrissa/p/5375206.html

Python通过subprocess.Popen.poll控制流程的更多相关文章

  1. python中subprocess.Popen.poll

    import subprocess proc = subprocess.Popen(['python', 'test.py'], stdout=subprocess.PIPE) while 1: pr ...

  2. python中subprocess.Popen执行命令并持续获取返回值

    先举一个Android查询连接设备的命令来看看Python中subprocess.Popen怎么样的写法.用到的命令为 adb devices. import subprocess order='ad ...

  3. Python调用subprocess.Popen卡死的解决方案

    转载自:https://www.cnblogs.com/keke-xiaoxiami/p/7875009.html 在Python中,调用:subprocess.Popen(cmd, stdout = ...

  4. python中subprocess.Popen的args和shell参数的使用

    subprocess模块定义了一个类: Popen class subprocess.Popen( args,        bufsize=0,        executable=None,    ...

  5. Python知识点入门笔记——基本控制流程

    复合赋值语句 在Python中,可以使用一次赋值符号,给多个变量同时赋值:                  划重点:age_1,age_2 = age_2,age_1这种操作是Python独有的 i ...

  6. python subprocess.Popen 控制台输出 实时监控百度网ping值

    import subprocess file_out = subprocess.Popen('ping www.baidu.com', shell=True, stdout=subprocess.PI ...

  7. Python: subprocess.Popen()不支持unicode问题解决

    起源: 所下载视频,有音视频分离者,需要合并起来,采用python之subprocess.Popen()调用ffmpeg实现.python版本为2.7.13,而音视频文件路径,有unicode字符者, ...

  8. Python,subprocess模块(补充)

    1.subprocess模块,前戏 res = os.system('dir') 打印到屏幕,res为0或非0 os.popen('dir') 返回一个内存对象,相当于文件流 a = os.popen ...

  9. Python模块subprocess

    subprocess的常用用法 """ Description: Author:Nod Date: Record: #-------------------------- ...

随机推荐

  1. 【c++ Prime 学习笔记】第16章 模板与泛型编程

    面向对象编程(OOP)和泛型编程(GP)都能处理在编写程序时类型未知的情况 OOP能处理运行时获取类型的情况 GP能处理编译期可获取类型的情况 标准库的容器.迭代器.算法都是泛型编程 编写泛型程序时独 ...

  2. [技术博客]使用pylint实现django项目的代码风格检查

    使用pylint实现django项目的代码风格检查 前言 ​ 一个项目大多都是由一个团队来完成,如果没有统一的代码规范,那么每个人的代码的风格必定会有很大的差别.且不说会存在多个人同时开发同一模块的情 ...

  3. 计算机网络传输层之TCP拥塞控制(慢开始与拥塞避免、快重传和快恢复)

    文章转自:https://blog.csdn.net/weixin_43914604/article/details/105532044 学习课程:<2019王道考研计算机网络> 学习目的 ...

  4. Python课程笔记(四)

    1.模块的导入 相当于Java的包或C语言的头文件 (1) import math s = math.sqrt(25) print(s) (2) from math import sqrt s=mat ...

  5. sql 多表联合查询更新

    sqlserver: update A a set a.i = b.k from B b where a.key = b.key oracle : update A a set a.i = (sele ...

  6. 把数组排成最小的数 牛客网 剑指Offer

    把数组排成最小的数 牛客网 剑指Offer 题目描述 输入一个正整数数组,把数组里所有数字拼接起来排成一个数,打印能拼接出的所有数字中最小的一个.例如输入数组{3,32,321},则打印出这三个数字能 ...

  7. Dubbo框架协议总结

    Dubbo支持的各种协议及相关特性及应用场景,均可在官网文档中找到. 支持的协议有dubbo.rmi.hession.http.webservice.thrift.memcached.redis.re ...

  8. python解释器的下载与安装

    python解释器 1. 什么是python解释器 用一种能让电脑听的懂得语言,使得电脑可以听从人们的指令去进行工作(翻译官) Python解释器本身也是个程序, 它是解释执行Python代码的,所以 ...

  9. /etc/hosts 详解

    /etc/hosts:主机名查询静态表,是ip地址与域名快速解析的文件.ip地址与主机名之间的映射,包括主机的别名. 通常将常用的域名和ip地址映射加入到hosts文件中,实现快速方便的访问. 如果没 ...

  10. 开发属于自己的包,并上传到npm上

    1.DIY开发包 1.1符合标准的包结构 一个规范的包,它的组成结构,必须符合以下3点要求: 包必须以单独的目录而存在 包的顶级目录下,必须包含package.json这个包管理文件 package. ...