subprocess模块详解2
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的更多相关文章
- python之subprocess模块详解--小白博客
subprocess模块 subprocess是Python 2.4中新增的一个模块,它允许你生成新的进程,连接到它们的 input/output/error 管道,并获取它们的返回(状态)码.这个模 ...
- subprocess模块详解
subprocess是Python与系统交互的一个库,该模块允许生成新进程,连接到它们的输入/输出/错误管道,并获取它们的返回代码. 该模块旨在替换几个较旧的模块和功能: os.system os.s ...
- python subprocess模块详解
一.subprocess标准库 python执行shell脚本,通常会使用so模块中的几个方法,如system.spawn*.popen等.subprocess标准库的引入就是为了取代这些老的模块方法 ...
- Python中操作mysql的pymysql模块详解
Python中操作mysql的pymysql模块详解 前言 pymsql是Python中操作MySQL的模块,其使用方法和MySQLdb几乎相同.但目前pymysql支持python3.x而后者不支持 ...
- python之OS模块详解
python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...
- python之sys模块详解
python之sys模块详解 sys模块功能多,我们这里介绍一些比较实用的功能,相信你会喜欢的,和我一起走进python的模块吧! sys模块的常见函数列表 sys.argv: 实现从程序外部向程序传 ...
- python中threading模块详解(一)
python中threading模块详解(一) 来源 http://blog.chinaunix.net/uid-27571599-id-3484048.html threading提供了一个比thr ...
- python time 模块详解
Python中time模块详解 发表于2011年5月5日 12:58 a.m. 位于分类我爱Python 在平常的代码中,我们常常需要与时间打交道.在Python中,与时间处理有关的模块就包括: ...
- python time模块详解
python time模块详解 转自:http://blog.csdn.net/kiki113/article/details/4033017 python 的内嵌time模板翻译及说明 一.简介 ...
随机推荐
- linux内存操作--ioremap和mmap
最近在做视频输出相关的东西,对于预留给framebuffer的内存使用不是很清楚,现在找到一些资料整理一下,以备使用.if (想看使用方法) goto 使用方法: 对于一个系统来讲,会有很多的外 ...
- nginx网站日志配置
用yum安装的nginx的日志默认安装在路径:/var/log/nginx nginx配置文件:/etc/nginx/nginx.conf (总配置文件)/etc/nginx/conf.d/defau ...
- 关于布局(Layout)的一切
之前在布局中有很多问题也有很多经验,遗憾都没记下来.现在一点点记下一些东西. 1.外层用LinearLayout的话,常常把orientation设成vertical, android:orienta ...
- liunx下的权限详解
用户组 在linux中的每个用户必须属于一个组,不能独立于组外.在linux中每个文件有所有者.所在组.其它组的概念 - 所有者 - 所在组 - 其它组 - 改变用户所在的组 所有者 一般为文件的创建 ...
- 【NOI 2005】 维修数列
[题目链接] 点击打开链接 [算法] 本题所运用的也是Splay的区间操作,但是实现较为困难 INSERT操作 将pos splay至根节点,pos+1 splay至根节点的右 ...
- YUIDoc的使用方法小结
一.YUIDoc概述以及安装YUIDoc是为YUI Library用来生成HTML版API文档的一系列工具集,文档的生成完全基于JavaDoc风格的代码注释规则.该工具是基于Python语言编写,并且 ...
- Entity Framework 实体间的外键关系
EF 默认是开户级联删除的,这此规则将会删除非空外键和多对多的关系,如果 在数据库上下文中的实体模型类 存在着 级联引用和多重删除路径,那么EF就抛出 级联引用和多重删除路径的异常. Introduc ...
- Get与Post的小知识
Get与Post的小知识 一.传递参数: Get把参数包含在URL中,而在Post通过request body传递参数.因为参数直接暴露在URL上,GET比POST更不安全,所以不能用来传递敏感信息. ...
- 任务48:Identity MVC:Model后端验证
任务48:Identity MVC:Model后端验证 RegisterViewModel using System; using System.Collections.Generic; using ...
- js 将json字符串转换为json对象的方法解析-转
例如: JSON字符串:var str1 = '{ "name": "cxh", "sex": "man" }'; JS ...