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 11 Python
分享15个最受欢迎的Python开源框架
Jul 13 Python
Python连接SQLServer2000的方法详解
Apr 19 Python
Python线程创建和终止实例代码
Jan 20 Python
python实现将一个数组逆序输出的方法
Jun 25 Python
tensorflow更改变量的值实例
Jul 30 Python
在python中利用GDAL对tif文件进行读写的方法
Nov 29 Python
浅谈python的输入输出,注释,基本数据类型
Apr 02 Python
Python3.8中使用f-strings调试
May 22 Python
python使用梯度下降算法实现一个多线性回归
Mar 24 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
浅析Python实现DFA算法
Jun 26 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 禁止页面缓存输出
2009/01/07 PHP
PHP之正则表达式捕获组与非捕获组(详解)
2015/07/29 PHP
PHP实现二叉树的深度优先与广度优先遍历方法
2015/09/28 PHP
高质量PHP代码的50个实用技巧必备(下)
2016/01/22 PHP
详解PHP使用日期时间处理器Carbon人性化显示时间
2017/08/10 PHP
PHP观察者模式原理与简单实现方法示例
2017/08/25 PHP
laravel 数据验证规则详解
2019/10/23 PHP
给jQuery方法添加回调函数一款插件的应用
2013/01/21 Javascript
JS动态添加与删除select中的Option对象(示例代码)
2013/12/20 Javascript
javascript限制用户只能输汉字中文的方法
2014/11/20 Javascript
JavaScript函数的一些注意要点小结及js匿名函数
2015/11/10 Javascript
学习使用bootstrap3栅格系统
2016/04/12 Javascript
全面解析标签页的切换方式
2016/08/21 Javascript
详解微信小程序开发—你期待的分享功能来了,微信小程序序新增5大功能
2016/12/23 Javascript
js 动态生成html 触发事件传参字符转义的实例
2017/02/14 Javascript
从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
2017/04/13 Javascript
jQuery第一次运行页面默认触发点击事件的实例
2018/01/10 jQuery
Vue2.0子同级组件之间数据交互方法
2018/02/28 Javascript
解决vue中使用less/sass及使用中遇到无效的问题
2020/10/24 Javascript
python分析nignx访问日志脚本分享
2015/02/26 Python
Python操作MongoDB数据库PyMongo库使用方法
2015/04/27 Python
python将处理好的图像保存到指定目录下的方法
2019/01/10 Python
Win10下python 2.7与python 3.7双环境安装教程图解
2019/10/12 Python
PyCharm取消波浪线、下划线和中划线的实现
2020/03/03 Python
python爬虫scrapy基本使用超详细教程
2021/02/20 Python
HTML5边玩边学(2)基础绘图实现方法
2010/09/21 HTML / CSS
英国精品买手店:Browns Fashion
2016/09/29 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
英国IT硬件供应商,定制游戏PC:Mesh Computers
2019/03/28 全球购物
SQL数据库笔试题
2016/03/08 面试题
通知的写法
2015/04/23 职场文书
煤矿安全学习心得体会
2016/01/18 职场文书
高中物理教学反思
2016/02/19 职场文书
浅谈Redis存储数据类型及存取值方法
2021/05/08 Redis
「SHOW BY ROCK!!」“雫シークレットマインド”组合单曲MV公开
2022/03/21 日漫
vue3引入highlight.js进行代码高亮的方法实例
2022/04/08 Vue.js