python执行外部程序的常用方法小结


Posted in Python onMarch 21, 2015

本文实例总结了python执行外部程序的常用方法。分享给大家供大家参考。具体分析如下:

在python中我们可以通过下面的方法直接调用系统命令或者外部程序,使用方便

1、os模块的execl方法

Python的execl系统方法同Unix的exec系统调用是一致的。这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回。
也就是说,这个shell进程被占领,将执行第一个execl的命令程序而不再返回。

2、使用os模块的system方法

system方法会创建子进程运行外部程序,方法只返回外部程序的运行结果。这个方法比较适用于外部程序没有输出结果的情况。比如在Ubuntu下,使用下面命令在桌面上显示一条提示信息。
根据我的实验,用system方法调用的进程正常结束返回0,异常结束返回非0,而不取决于进程主函数的返回值。

3、使用os模块的popen方法

当需要得到外部程序的输出结果时,本方法非常有用。比如使用urllib调用Web API时,需要对得到的数据进行处理。一个使用例子如下:

cmd = "ssh search47c.cm2 \"" + query + "\""
#print cmd + "<br>"
output = os.popen(cmd)
#对特殊字符进行转义
temp1 = output.read().replace('<','<')
temp2 = temp1.replace('>', ">")
temp3 = temp2.replace('\n', "<br>")
print temp3.replace('/', "/")

4、使用commands模块的getoutput方法(没用过)

这种方法同popend的区别在于popen返回的是一个文件句柄,而本方法将外部程序的输出结果当作字符串返回,很多情况下用起来要更方便些。

希望本文所述对大家的Python程序设计有所帮助。

Python 相关文章推荐
python计算牛顿迭代多项式实例分析
May 07 Python
让Python代码更快运行的5种方法
Jun 21 Python
Python简单遍历字典及删除元素的方法
Sep 18 Python
django中模板的html自动转意方法
May 27 Python
python3使用SMTP发送HTML格式邮件
Jun 19 Python
python实现多进程代码示例
Oct 31 Python
python交易记录链的实现过程详解
Jul 03 Python
Python爬取知乎图片代码实现解析
Sep 17 Python
Python如何使用Gitlab API实现批量的合并分支
Nov 27 Python
通过实例解析python and和or使用方法
Nov 14 Python
Pygame如何使用精灵和碰撞检测
Nov 17 Python
利用Python多线程实现图片下载器
Mar 25 Python
python使用Flask框架获取用户IP地址的方法
Mar 21 #Python
Python使用Flask框架获取当前查询参数的方法
Mar 21 #Python
Python使用Flask框架同时上传多个文件的方法
Mar 21 #Python
python中Flask框架简单入门实例
Mar 21 #Python
python中django框架通过正则搜索页面上email地址的方法
Mar 21 #Python
Python去除列表中重复元素的方法
Mar 20 #Python
python在windows下实现ping操作并接收返回信息的方法
Mar 20 #Python
You might like
php cli模式学习(PHP命令行模式)
2013/06/03 PHP
php+mysql实现用户注册登陆的方法
2015/01/03 PHP
Laravel 集成 Geetest验证码的方法
2018/05/14 PHP
Nigma vs Liquid BO3 第二场2.14
2021/03/10 DOTA
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
关于jquery性能最佳实践的讨论,与求教
2012/03/30 Javascript
JavaScript中json对象和string对象之间相互转化
2012/12/26 Javascript
聊一聊JS中this的指向问题
2016/06/17 Javascript
浅谈js函数的多种定义方法与区别
2016/11/29 Javascript
Vue 页面跳转不用router-link的实现代码
2018/04/12 Javascript
浅谈Vue.js路由管理器 Vue Router
2018/08/16 Javascript
vue与bootstrap实现简单用户信息添加删除功能
2019/02/15 Javascript
20个必会的JavaScript面试题(小结)
2019/07/02 Javascript
原生js生成图片验证码
2020/10/11 Javascript
python中Flask框架简单入门实例
2015/03/21 Python
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python编程中装饰器的使用示例解析
2016/06/20 Python
python实现发送邮件及附件功能
2021/03/02 Python
推荐10款最受Python开发者欢迎的Python IDE
2018/09/16 Python
python开发准备工作之配置虚拟环境(非常重要)
2019/02/11 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
html5使用Canvas绘图的使用方法
2017/11/21 HTML / CSS
简单聊聊H5的pushState与replaceState的用法
2018/04/03 HTML / CSS
HTML5学习心得总结(推荐)
2016/07/08 HTML / CSS
美国排名第一的泳池用品直接来源:In The Swim
2019/09/23 全球购物
人力资源行政经理自我评价
2013/10/23 职场文书
办公室年终个人自我评价
2013/10/28 职场文书
标准自荐信范文
2014/01/29 职场文书
员工试用期自我评价
2014/09/18 职场文书
政协委员个人总结
2015/03/03 职场文书
如何理解Vue前后端数据交互与显示
2021/05/10 Vue.js
QT与javascript交互数据的实现
2021/05/26 Javascript
Python下载商品数据并连接数据库且保存数据
2022/03/31 Python
《进击的巨人》新联动CM 兵长强势出击兽巨人
2022/04/05 日漫
索尼ICF-36收音机评测
2022/04/30 无线电