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 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

最新文章

  1. 浅谈HTTP中Get与Post的区别
  2. Salesforce 动态审批
  3. java swing 去掉按钮文字周围的焦点框
  4. docker学习使用
  5. android中在代码中设置margin属性
  6. Mingyang.net:如何获取所有的请求参数?
  7. java String常见的处理
  8. (原+转)ROC曲线
  9. 转:Bootstrap研究 精巧的网格布局系统
  10. mysql之inner join 和left join/right join
  11. 第三十九节,python内置全局变量
  12. 如何使用XE2及更高版本中提供的自定义皮肤(样式)功能
  13. 【POJ】 1061 青蛙的约会(扩欧)
  14. Python3中urllib详细使用方法(header,代理,超时,认证,异常处理) 转
  15. 移动端meta标签缓存设置
  16. 关于height、offsetheight、clientheight、scrollheight、innerheight、outerheight的区别
  17. [Swift]LeetCode310. 最小高度树 | Minimum Height Trees
  18. 仿B站项目(4)webpack打包第三方库jQuery
  19. Java 线程池 Executor 框架
  20. Hadoop生态圈-Kafka配置文件详解

热门文章

  1. POJ2104-- K-th Number(主席树静态区间第k大)
  2. 使用MapReduce将HDFS数据导入到HBase(二)
  3. B - Network - uva 315(求割点)
  4. js学习之道:js防止表单重复提交
  5. servlet过滤器配置白名单、黑名单
  6. [深入React] 2.综述
  7. Javascript:DOM动态创建元素实例应用
  8. [亲测有效] - Mac下屏蔽优酷广告最简单的方法
  9. Android小试牛刀之遇到的问题
  10. effective条款15,在资源管理类中小心copying行为