1.call() 和run功能类似,都是接受一个列表里的参数。

>>> import subprocess
>>> a = subprocess.call(["control"])

2.返回值不为0,程序会报错

>>> subprocess.check_call(["control"])

3.接受一个字符串命令,返回一个元组,第一个是执行状态,第二个是命令结果。

>>> subprocess.getstatusoutput("control")
(1, '')

4.接受字符串命令,并返回结果  

>>> subprocess.getoutput()

5.返回结果给res,执行状态不为0会报错。注意:不是打印结果,是返回命令结果给res。

>>>res = subprocess.check_output("control")

6.用run执行“sleep 10” 系统会停止10s去执行程序。因为系统调用run方法,run方法会停留在主程序,直到执行完成,主程序才会继续下去。

>>> subprocess.run("sleep 10",shell = True,stderr = subprocess.PIPE,stdout = subprocess.PIPE)a.

a.poll() 查看执行状态,执行结束了会返回执行状态。Popen执行命令不会影响主程序,系统调用Popen,Popen会发起一个新进程,新进程会执行命令,主程序还会继续运行下去,新进程执行完毕会把结果返回给主程序。同时,用a.poll()还可以随时查看新进程的执行状态。Popen是run封装的一个模块。

>>> a = subprocess.Popen("sleep 10",shell = True,stderr = subprocess.PIPE,stdout = subprocess.PIPE)

  

7.preexec_fn ,只在Unix平台下有效,用于指定一个可执行对象,他将在新进程执行之前执行。

 >>> a = subprocess.Popen("sleep 10",shell = True,stderr = subprocess.PIPE,stdout = subprocess.PIPE,preexec_fn = say)

 cwd  用于设置子进程的当前目录

>>> a = subprocess.Popen("sleep 10",shell = True,cwd =r" C:\Users\LENOVO\Desktop\12",stderr = subprocess.PIPE,stdout = subprocess.PIPE,preexec_fn = sayhi)

 env 设置子进程的环境变量

8.a.wait()  主程序需要结果,不往下继续运行,就用wait()

9.terminate()终止所启动的进程

a.pid 获取进程号

10.kill() 杀死所启动的进程

11.communicate() 与启动的进程交互,只能交互一次,多了个stdin(标准输入)

>>> a = subprocess.Popen(" file.py",shell = True,stderr = subprocess.PIPE,stdout = subprocess.PIPE,stdin = subprocess.PIPE)

12.a.send_signal(signal.xxx) 给系统发信号

 

  

  

 

  

subprocess模块详解2的更多相关文章

  1. python之subprocess模块详解--小白博客

    subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码.这个模 ...

  2. subprocess模块详解

    subprocess是Python与系统交互的一个库,该模块允许生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回代码. 该模块旨在替换几个较旧的模块和功能: os.system os.s ...

  3. python subprocess模块详解

    一.subprocess标准库 python执行shell脚本,通常会使用so模块中的几个方法,如system.spawn*.popen等.subprocess标准库的引入就是为了取代这些老的模块方法 ...

  4. Python中操作mysql的pymysql模块详解

    Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...

  5. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  6. python之sys模块详解

    python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...

  7. python中threading模块详解(一)

    python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...

  8. python time 模块详解

    Python中time模块详解 发表于2011年5月5日 12:58 a.m.    位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...

  9. python time模块详解

    python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明  一.简介 ...

随机推荐

  1. LIS n^2&nlogn模板

    LIS nlogn模板 http://acm.hdu.edu.cn/showproblem.php?pid=1950 #include <iostream> #include <st ...

  2. POJ2135 Farm Tour —— 最小费用最大流

    题目链接:http://poj.org/problem?id=2135 Farm Tour Time Limit: 1000MS   Memory Limit: 65536K Total Submis ...

  3. hdu 1286 找新朋友(欧拉函数)

    题意:欧拉函数 思路:欧拉函数 模板,代码略.

  4. [原创]Java生成Word文档

    在开发文档系统或办公系统的过程中,有时候我们需要导出word文档.在网上发现了一个用PageOffice生成word文件的功能,就将这块拿出来和大家分享. 生成word文件与我们编辑word文档本质上 ...

  5. codeforces 673D D. Bear and Two Paths(构造)

    题目链接: D. Bear and Two Paths time limit per test 2 seconds memory limit per test 256 megabytes input ...

  6. Python测试框架doctest

    doctest是python自带的一个模块.本博客将介绍doctest的两种使用方式:一种是嵌入到python源码中,另外一种是放到一个独立文件. doctest 的概念模型 在python的官方文档 ...

  7. 空间数据索引RTree完全解析及Java实现

    版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/MongChia1993/article/details/69941783 第一部分 空间数据的背景介 ...

  8. 在idea中创建maven父子工程,子工程无法导入父工程依赖的问题

    创建maven父子工程时遇到一个问题,当子工程的名称前缀和父工程的名称一样时,子工程会出现一系列的问题.比如我的父工程名称是microservicecloud,子工程名称是microservicecl ...

  9. 洛谷 - P1309 - 瑞士轮 - 归并排序

    https://www.luogu.org/problemnew/show/P1309 一开始写的直接快排没想到真的TLE了. 想到每次比赛每个人前移的量不会很多,但是不知从哪里开始优化. 搜索一下原 ...

  10. IT兄弟连 JavaWeb教程 Servlet API

    Java Servlet是运行在带有支持Java Servlet规范的解释器的web服务器上的Java类. Servlet可以使用javax.servlet和javax.servlet.http包创建 ...