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实现复制整个目录的方法
May 12 Python
Python按行读取文件的实现方法【小文件和大文件读取】
Sep 19 Python
python 调用HBase的简单实例
Dec 18 Python
Python编程二分法实现冒泡算法+快速排序代码示例
Jan 15 Python
用python实现将数组元素按从小到大的顺序排列方法
Jul 02 Python
Python爬虫之UserAgent的使用实例
Feb 21 Python
Python 处理文件的几种方式
Aug 23 Python
Python 实现大整数乘法算法的示例代码
Sep 17 Python
Python Sphinx使用实例及问题解决
Jan 17 Python
PyQt5事件处理之定时在控件上显示信息的代码
Mar 25 Python
Django实现后台上传并显示图片功能
May 29 Python
Django给表单添加honeypot验证增加安全性
May 06 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 可阅读随机字符串代码
2010/05/26 PHP
php使用array_rand()函数从数组中随机选择一个或多个元素
2014/04/28 PHP
Yii配置文件用法详解
2014/12/04 PHP
PHP基于curl模拟post提交json数据示例
2018/06/22 PHP
javascript 全角转换实现代码
2009/07/17 Javascript
JavaScript的变量作用域深入理解
2009/10/25 Javascript
javascript的函数、创建对象、封装、属性和方法、继承
2011/03/10 Javascript
Javascript倒计时页面跳转实例小结
2013/09/11 Javascript
js完美的div拖拽实例代码
2014/01/22 Javascript
jQuery mobile 移动web(4)
2015/12/20 Javascript
JavaScript常用字符串与数组扩展函数小结
2016/04/24 Javascript
JS当前页面登录注册框,固定DIV,底层阴影的实例代码
2016/09/29 Javascript
Mongoose学习全面理解(推荐)
2017/01/21 Javascript
为Jquery EasyUI 组件加上清除功能的方法(详解)
2017/04/13 jQuery
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
VueJS 集成 Medium Editor的示例代码 (自定义编辑器按钮)
2017/08/24 Javascript
js排序与重组的实例讲解
2017/08/28 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
Vue安装浏览器开发工具的步骤详解
2019/05/12 Javascript
python发送伪造的arp请求
2014/01/09 Python
pyqt4教程之实现半透明的天气预报界面示例
2014/03/02 Python
python中sets模块的用法实例
2014/09/30 Python
Python中文竖排显示的方法
2015/07/28 Python
解决python3 安装完Pycurl在import pycurl时报错的问题
2018/10/15 Python
Python GUI编程完整示例
2019/04/04 Python
对django后台admin下拉框进行过滤的实例
2019/07/26 Python
python中setuptools的作用是什么
2020/06/19 Python
CSS3实现内凹圆角的实例代码
2017/05/04 HTML / CSS
HTML5中判断横屏竖屏的方法(移动端)
2016/08/04 HTML / CSS
小学教师的个人自我鉴定
2013/10/24 职场文书
开学典礼主持词
2014/03/19 职场文书
个人贷款担保书
2014/04/01 职场文书
婚内分居协议书范文
2014/11/26 职场文书
学校世界艾滋病日宣传活动总结
2015/05/05 职场文书
奖学金申请个人主要事迹材料
2015/11/04 职场文书
Golang 实现获取当前函数名称和文件行号等操作
2021/05/08 Golang