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模板翻译及说明 一.简介 ...
随机推荐
- confluence的使用
搜索文档的技巧 在confluence中进行搜索的时候,也需要使用通配符.比如搜索cmscontext,需要这么搜索cmscontex*,如果搜索的话,cmscontext.geturl是会被过滤掉的 ...
- LR工作原理
LoadRunner的总体架构图,包括各个组件VUGen, Controller和Analysis之间的关系. LoadRunner由四大组件组成:VuGen.控制器.负载发生器和分析器. 1.VuG ...
- HDU - 1874 畅通工程续(最短路径)
d.已知起点和终点,请你计算出要从起点到终点,最短需要行走多少距离. s.最短路径 c.Dijkstra单源最短路 /* Dijkstra单源最短路 权值必须是非负 单源最短路径,Dijkstra算法 ...
- 安装程序工具 (Installutil.exe)22
网址:https://msdn.microsoft.com/zh-cn/library/50614e95(VS.80).aspx 安装程序工具 (Installutil.exe) .NET Fram ...
- ubuntu下tesseract 4.0安装及参数使用
tesseract是一个开源的OCR引擎,最初是由惠普公司开发用来作为其平板扫描仪的OCR引擎,2005年惠普将其开源出来,之后google接手负责维护.目前稳定的版本是3.0.4.0版本加入了基 ...
- [Selenium] 使用Chrome Driver 的示例
//导入Selenium 库和 ChromeDriver 库 pachage com.learningselenium.simplewebdriver; import java.util.concur ...
- ng 表单提交验证
http://www.runoob.com/try/try.php?filename=try_ng_validate
- MYSQL数据库学习----MYSQL数据类型
一切数据在计算中都是以二进制形式存储,而8位二进制数就表示1个字节. 通常我们说一种数据类型占多少字节,就是说这种数据类型可以表示多少位的二进制数,同时二进制数可以转换为十进制数,进而得到这种数据类型 ...
- Open multiple excel files in WebBrowser, only the last one gets activated
http://stackoverflow.com/questions/20578053/open-multiple-excel-files-in-webbrowser-only-the-last-on ...
- scp.sh
#!/bin/sh #Auto change server files #liudong 2016-3-21 if [ ! -f ip.txt ];then echo -e "\033[31 ...