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中PDB模块中的命令来调试Python代码的教程
Mar 30 Python
详解在Python和IPython中使用Docker
Apr 28 Python
Python学习入门之区块链详解
Jul 25 Python
Python使用pymysql从MySQL数据库中读出数据的方法
Jul 25 Python
Python音频操作工具PyAudio上手教程详解
Jun 26 Python
解决Python3用PIL的ImageFont输出中文乱码的问题
Aug 22 Python
如何运行带参数的python脚本
Nov 15 Python
PyCharm汉化安装及永久激活详细教程(靠谱)
Jan 16 Python
python3安装OCR识别库tesserocr过程图解
Apr 02 Python
ipython jupyter notebook中显示图像和数学公式实例
Apr 15 Python
python中tab键是什么意思
Jun 18 Python
Python selenium键盘鼠标事件实现过程详解
Jul 28 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
ASP知识讲座四
2006/10/09 PHP
mysql 的 like 问题,超强毕杀记!!!
2007/01/18 PHP
php下用GD生成生成缩略图的两个选择和区别
2007/04/17 PHP
php str_pad() 将字符串填充成指定长度的字符串
2010/02/23 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
整理8个很棒的 jQuery 倒计时插件和教程
2011/12/12 Javascript
JQuery入门—编写一个简单的JQuery应用案例
2013/01/03 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
jQuery拖动布局其结果保存到数据库
2015/10/09 Javascript
浅析javascript异步执行函数导致的变量变化问题解决思路
2016/05/13 Javascript
AngularJs  E2E Testing 详解
2016/09/02 Javascript
bootstrap vue.js实现tab效果
2017/02/07 Javascript
Bootstrap进度条实现代码解析
2017/03/07 Javascript
基于JavaScript 实现拖放功能
2019/09/12 Javascript
Js参数RSA加密传输之jsencrypt.js的使用
2020/02/07 Javascript
[03:28]2014DOTA2国际邀请赛 EG战队官方纪录片
2014/07/21 DOTA
[47:52]完美世界DOTA2联赛PWL S2 PXG vs InkIce 第二场 11.26
2020/11/30 DOTA
wxpython 最小化到托盘与欢迎图片的实现方法
2014/06/09 Python
简单理解Python中基于生成器的状态机
2015/04/13 Python
Python极简代码实现杨辉三角示例代码
2016/11/15 Python
Python实现PS滤镜的旋转模糊功能示例
2018/01/20 Python
Python基础学习之类与实例基本用法与注意事项详解
2019/06/17 Python
python单例模式原理与创建方法实例分析
2019/10/26 Python
python如何求数组连续最大和的示例代码
2020/02/04 Python
基于Django OneToOneField和ForeignKey的区别详解
2020/03/30 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
python自定义函数def的应用详解
2020/06/03 Python
使用matplotlib的pyplot模块绘图的实现示例
2020/07/12 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
上级检查欢迎词
2014/01/18 职场文书
高中毕业典礼演讲稿
2014/09/09 职场文书
丧事酒宴答谢词
2015/09/30 职场文书
职场新人刚入职工作总结该怎么写?
2019/05/15 职场文书
解决Jenkins集成SonarQube遇到的报错问题
2021/07/15 Java/Android
Python自动操作神器PyAutoGUI的使用教程
2022/06/16 Python