python 执行shell命令
1、os模块中的os.system()这个函数来执行shell命令
1
2
3
|
>>> os.system( 'ls' ) anaconda - ks.cfg install.log install.log.syslog send_sms_service.py sms.py 0 |
注,这个方法得不到shell命令的输出。
2、popen()#这个方法能得到命令执行后的结果是一个字符串,要自行处理才能得到想要的信息。
1
2
3
4
5
|
>>> import os >>> str = os.popen( "ls" ).read() >>> a = str .split( "\n" ) >>> for b in a: print b |
这样得到的结果与第一个方法是一样的。
3、commands模块#可以很方便的取得命令的输出(包括标准和错误输出)和执行状态位
import commands a,b = commands.getstatusoutput( 'ls' ) a是退出状态 b是输出的结果。 >>> import commands >>> a,b = commands.getstatusoutput( 'ls' ) >>> print a 0 >>> print b anaconda - ks.cfg install.log install.log.syslog |
commands.getstatusoutput(cmd)返回(status,output)
commands.getoutput(cmd)只返回输出结果
commands.getstatus(file)返回ls -ld file 的执行结果字符串,调用了getoutput,不建议使用这个方法。
4、subprocess模块
使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。
import subprocess
1、subprocess.call(command, shell=True)
#会直接打印出结果。
2、subprocess.Popen(command, shell=True) 也可以是subprocess.Popen(command, stdout=subprocess.PIPE, shell=True) 这样就可以输出结果了。
如果command不是一个可执行文件,shell=True是不可省略的。
shell=True意思是shell下执行command
这四种方法都可以执行shell命令。
转自:
http://zhou123.blog.51cto.com/4355617/1312791
最新文章
- 浅谈HTTP中Get与Post的区别
- Salesforce 动态审批
- java swing 去掉按钮文字周围的焦点框
- docker学习使用
- android中在代码中设置margin属性
- Mingyang.net:如何获取所有的请求参数?
- java String常见的处理
- (原+转)ROC曲线
- 转:Bootstrap研究 精巧的网格布局系统
- mysql之inner join 和left join/right join
- 第三十九节,python内置全局变量
- 如何使用XE2及更高版本中提供的自定义皮肤(样式)功能
- 【POJ】 1061 青蛙的约会(扩欧)
- Python3中urllib详细使用方法(header,代理,超时,认证,异常处理) 转
- 移动端meta标签缓存设置
- 关于height、offsetheight、clientheight、scrollheight、innerheight、outerheight的区别
- [Swift]LeetCode310. 最小高度树 | Minimum Height Trees
- 仿B站项目(4)webpack打包第三方库jQuery
- Java 线程池 Executor 框架
- Hadoop生态圈-Kafka配置文件详解