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自动zip压缩目录的方法
Jun 28 Python
Python的装饰器使用详解
Jun 26 Python
Python实现的弹球小游戏示例
Aug 01 Python
python筛选出两个文件中重复行的方法
May 31 Python
python图像和办公文档处理总结
May 28 Python
Python OpenCV 调用摄像头并截图保存功能的实现代码
Jul 02 Python
用Python实现BP神经网络(附代码)
Jul 10 Python
django2.2 和 PyMySQL版本兼容问题
Feb 17 Python
python爬虫可以爬什么
Jun 16 Python
python如何支持并发方法详解
Jul 25 Python
vscode+PyQt5安装详解步骤
Aug 12 Python
python自动化之如何利用allure生成测试报告
May 02 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
smarty简单入门实例
2014/11/28 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
基于php实现七牛抓取远程图片
2015/12/01 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
PHP消息队列实现及应用详解【队列处理订单系统和配送系统】
2019/05/20 PHP
最近项目写了一些js,水平有待提高
2009/01/31 Javascript
JavaScript通过RegExp实现客户端验证处理程序
2013/05/07 Javascript
绑定回车enter事件代码
2014/05/18 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
js采用concat和sort将N个数组拼接起来的方法
2016/01/21 Javascript
BootStrap 附加导航组件
2016/07/22 Javascript
BootStrap与validator 使用笔记(JAVA SpringMVC实现)
2016/09/21 Javascript
vue.js 表格分页ajax 异步加载数据
2016/10/18 Javascript
javascript实现获取指定精度的上传文件的大小简单实例
2016/10/25 Javascript
vue-loader教程介绍
2017/06/14 Javascript
详解react-webpack2-热模块替换[HMR]
2017/08/03 Javascript
vue 使用ref 让父组件调用子组件的方法
2018/02/08 Javascript
详解用Node.js写一个简单的命令行工具
2018/03/01 Javascript
微信小程序开发之tabbar图标和颜色的实现
2018/10/17 Javascript
在js代码拼接dom对象到页面上的模板总结
2018/10/21 Javascript
微信小程序 调用远程接口 给全局数组赋值代码实例
2019/08/13 Javascript
Postman动态获取返回值过程详解
2020/06/30 Javascript
[04:16]DOTA2全国高校联赛16强抽签
2018/05/02 DOTA
Python备份目录及目录下的全部内容的实现方法
2016/06/12 Python
pycharm 设置项目的根目录教程
2020/02/12 Python
基于Keras 循环训练模型跑数据时内存泄漏的解决方式
2020/06/11 Python
浅谈python处理json和redis hash的坑
2020/07/16 Python
餐饮总经理岗位职责
2014/03/07 职场文书
乡镇创先争优活动总结
2014/08/28 职场文书
解放思想大讨论活动心得体会
2014/09/11 职场文书
学校党员个人问题整改措施思想汇报
2014/10/08 职场文书
入党个人总结范文
2015/03/02 职场文书
会计主管岗位职责
2015/04/02 职场文书
python批量更改目录名/文件名的方法
2021/04/18 Python
用golang如何替换某个文件中的字符串
2021/04/25 Golang