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遍历数组的方法小结
Apr 30 Python
Python二分查找详解
Sep 13 Python
Python调用ctypes使用C函数printf的方法
Aug 23 Python
简单谈谈Python的pycurl模块
Apr 07 Python
对Python3中的input函数详解
Apr 22 Python
Python 使用folium绘制leaflet地图的实现方法
Jul 05 Python
基于python+selenium的二次封装的实现
Jan 06 Python
Python线程条件变量Condition原理解析
Jan 20 Python
解决keras backend 越跑越慢问题
Jun 18 Python
Python如何实现机器人聊天
Sep 10 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
Dec 21 Python
基于Python的接口自动化读写excel文件的方法
Jan 15 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 保留小数点
2009/04/21 PHP
Thinkphp实现自动验证和自动完成
2015/12/19 PHP
锋利的jQuery 要点归纳(三) jQuery中的事件和动画(下:动画篇)
2010/03/24 Javascript
DOM2非标准但却支持很好的几个属性小结
2012/01/21 Javascript
jQuery 网易相册鼠标移动显示隐藏效果实现代码
2013/03/31 Javascript
jQuery实用基础超详细介绍
2013/04/11 Javascript
javascript中的window.location.search方法简介
2013/09/02 Javascript
js清空form表单中的内容示例
2014/05/20 Javascript
a标签的href与onclick事件的区别详解
2014/11/12 Javascript
JS实现屏蔽shift,Ctrl,alt等功能键的方法
2015/06/01 Javascript
很实用的js选项卡切换效果
2016/08/12 Javascript
JavaScript提高加载和执行效率的方法
2017/02/03 Javascript
JavaScript轮播图简单制作方法
2017/02/20 Javascript
详解webpack进阶之插件篇
2017/07/06 Javascript
js通过Date对象实现倒计时动画效果
2017/10/27 Javascript
详解基于vue-cli配置移动端自适应
2018/01/13 Javascript
vue cli 全面解析
2018/02/28 Javascript
安装Node.js并启动本地服务的操作教程
2018/05/12 Javascript
koa+mongoose实现简单增删改查接口的示例代码
2019/05/13 Javascript
js实现自定义右键菜单
2020/05/18 Javascript
python 图片验证码代码
2008/12/07 Python
python的urllib模块显示下载进度示例
2014/01/17 Python
python实现将汉字转换成汉语拼音的库
2015/05/05 Python
Python实现在matplotlib中两个坐标轴之间画一条直线光标的方法
2015/05/20 Python
简介Django框架中可使用的各类缓存
2015/07/23 Python
python: 自动安装缺失库文件的方法
2018/10/22 Python
python实现根据文件格式分类
2019/10/31 Python
python实现按首字母分类查找功能
2019/10/31 Python
python快速排序的实现及运行时间比较
2019/11/22 Python
用ldap作为django后端用户登录验证的实现
2020/12/07 Python
CSS3实现多背景展示效果通过CSS3定位多张背景
2014/08/10 HTML / CSS
CSS3中的content属性使用示例
2015/07/20 HTML / CSS
2014年公务员思想汇报范文:全心全意为人民服务
2014/03/06 职场文书
圆明园纪录片观后感
2015/06/03 职场文书
经典爱情感言
2015/08/03 职场文书
小学主题班会教案
2015/08/17 职场文书