python中执行shell命令的几个方法小结


Posted in Python onSeptember 18, 2014

最近有个需求就是页面上执行shell命令,第一想到的就是os.system,

os.system('cat /proc/cpuinfo')

但是发现页面上打印的命令执行结果 0或者1,当然不满足需求了。

尝试第二种方案 os.popen()

output = os.popen('cat /proc/cpuinfo')

print output.read()

通过 os.popen() 返回的是 file read 的对象,对其进行读取 read() 的操作可以看到执行的输出。但是无法读取程序执行的返回值)

尝试第三种方案 commands.getstatusoutput() 一个方法就可以获得到返回值和输出,非常好用。

(status, output) = commands.getstatusoutput('cat /proc/cpuinfo')

print status, output

Python Document 中给的一个例子,
>>> import commands

>>> commands.getstatusoutput('ls /bin/ls')

(0, '/bin/ls')

>>> commands.getstatusoutput('cat /bin/junk')

(256, 'cat: /bin/junk: No such file or directory')

>>> commands.getstatusoutput('/bin/junk')

(256, 'sh: /bin/junk: not found')

>>> commands.getoutput('ls /bin/ls')

'/bin/ls'

>>> commands.getstatus('/bin/ls')

'-rwxr-xr-x 1 root 13352 Oct 14 1994 /bin/ls'

最后页面上还可以根据返回值来显示命令执行结果。
Python 相关文章推荐
python文件和目录操作方法大全(含实例)
Mar 12 Python
一键搞定python连接mysql驱动有关问题(windows版本)
Apr 23 Python
Python中的变量和作用域详解
Jul 13 Python
Django视图之ORM数据库查询操作API的实例
Oct 27 Python
利用Django内置的认证视图实现用户密码重置功能详解
Nov 24 Python
Django+Ajax+jQuery实现网页动态更新的实例
May 28 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
Python3实现二叉树的最大深度
Sep 30 Python
python二维键值数组生成转json的例子
Dec 06 Python
python opencv人脸识别考勤系统的完整源码
Apr 26 Python
python绘图subplots函数使用模板的示例代码
Apr 30 Python
Python深度学习之实现卷积神经网络
Jun 05 Python
python处理PHP数组文本文件实例
Sep 18 #Python
Python threading多线程编程实例
Sep 18 #Python
Python中捕捉详细异常信息的代码示例
Sep 18 #Python
python字符串连接的N种方式总结
Sep 17 #Python
Python实现的检测web服务器健康状况的小程序
Sep 17 #Python
python写的一个squid访问日志分析的小程序
Sep 17 #Python
python进程管理工具supervisor使用实例
Sep 17 #Python
You might like
php printf输出格式使用说明
2010/12/05 PHP
PHP隐形一句话后门,和ThinkPHP框架加密码程序(base64_decode)
2011/11/02 PHP
PHP开发框架Laravel数据库操作方法总结
2014/09/03 PHP
php查看当前Session的ID实例
2015/03/16 PHP
composer.lock文件的作用
2016/02/03 PHP
实例讲解YII2中多表关联的使用方法
2017/07/21 PHP
HTML 自动伸缩的表格Table js实现
2009/04/01 Javascript
Javascript变量函数浅析
2011/09/02 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
javascript继承之为什么要继承
2012/11/10 Javascript
Jquery同辈元素选中/未选中效果的实例代码
2013/08/01 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
分享20个提升网站界面体验的jQuery插件
2014/12/15 Javascript
jquery插件tytabs.jquery.min.js实现渐变TAB选项卡效果
2015/08/25 Javascript
JS 实现导航菜单中的二级下拉菜单的几种方式
2016/10/31 Javascript
实例解析jQuery中如何取消后续执行内容
2016/12/01 Javascript
Vue.js路由组件vue-router使用方法详解
2016/12/02 Javascript
JavaScript严格模式详解
2017/01/16 Javascript
ES6新特性之Object的变化分析
2017/03/31 Javascript
JS自定义滚动条效果简单实现代码
2020/10/27 Javascript
vue-cli3 karma单元测试的实现
2019/01/18 Javascript
vue实现从外部修改组件内部的变量的值
2020/07/30 Javascript
python3.5实现socket通讯示例(TCP)
2017/02/07 Python
Python流行ORM框架sqlalchemy安装与使用教程
2019/06/04 Python
用Cython加速Python到“起飞”(推荐)
2019/08/01 Python
django框架基于queryset和双下划线的跨表查询操作详解
2019/12/11 Python
pytorch 模型的train模式与eval模式实例
2020/02/20 Python
美国老牌主机服务商:iPage
2016/07/22 全球购物
UNIX命令速查表
2012/03/10 面试题
管理心得体会
2013/12/28 职场文书
生日派对邀请函
2014/01/13 职场文书
统计岗位职责
2014/02/21 职场文书
入党介绍人意见范文
2015/06/01 职场文书
2015暑期工社会实践报告
2015/07/13 职场文书
python如何利用traceback获取详细的异常信息
2021/06/05 Python
Python必备技巧之字符数据操作详解
2022/03/23 Python