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. WinDbg调试高内存的.Net进程Dump

    WinDbg的学习路径,艰难曲折,多次研究进展不多,今日有所进展,记录下来. 微软官方帮助文档非常全面:https://msdn.microsoft.com/zh-cn/library/windows ...

  2. poj 1469 COURSES 解题报告

    题目链接:http://poj.org/problem?id=1469 题目意思:有 N 个人,P个课程,每一个课程有一些学生参加(0个.1个或多个参加).问 能否使得 P 个课程 恰好与 P 个学生 ...

  3. unity-Fatal Error GC-GetThreadContext Failed

    这几次在使用unity5.3打windows包后,运行x.exe不久总是会弹出"fatal error GC: GetThreadContext Failed"的错误.到网上查了, ...

  4. 「LuoguP1799」 数列_NOI导刊2010提高(06)

    题目描述 虽然msh长大了,但她还是很喜欢找点游戏自娱自乐.有一天,她在纸上写了一串数字:1,1,2,5,4.接着她擦掉了一个l,结果发现剩下1,2,4都在自己所在的位置上,即1在第1位,2在第2位, ...

  5. Github--开源代码仓库式系统(转)

    要了解Github,我们首先要知道Git,Git是管理代码的工具,写代码不是件轻松的事儿,一个人写的时候已经不轻松了,一群人写就更不轻松了,但这世界上很多事都是怎么不轻松怎么来的,大部分人都会和别人一 ...

  6. bzoj2748音量调节——背包

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=2748 怎么会有这样的省选题... 代码如下: #include<iostream> ...

  7. 后台接口平台 基于Laravel 开发 快速开发数据接口

    laravelPCMS V1.5.0 项目地址:https://github.com/q1082121/laravelcms 喜欢的朋友可以支持下 点点星标 百牛信息技术bainiu.ltd整理发布于 ...

  8. Linux 开机引导和启动过程详解

    你是否曾经对操作系统为何能够执行应用程序而感到疑惑?那么本文将为你揭开操作系统引导与启动的面纱. 理解操作系统开机引导和启动过程对于配置操作系统和解决相关启动问题是至关重要的.该文章陈述了 GRUB2 ...

  9. robotframework:appium切换webview后,在webview里滑动屏幕

    问题: 在用robot写手机淘宝app的自动化时,打开手机淘宝后,点击天猫国际,跳转到天猫国际页面,天猫国际页面是H5, 需要切换到对应的webview,切换到webview后,点击美妆菜单,跳转到美 ...

  10. 【旧文章搬运】PE重定位表学习手记

    原文发表于百度空间,2008-11-02========================================================================== 先定义一下 ...