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从入门到精通(DAY 1)
Dec 20 Python
python字典操作实例详解
Nov 16 Python
python实现微信跳一跳辅助工具步骤详解
Jan 04 Python
python3.x实现发送邮件功能
May 22 Python
Python代码块批量添加Tab缩进的方法
Jun 25 Python
Django实现单用户登录的方法示例
Mar 28 Python
Python 实用技巧之利用Shell通配符做字符串匹配
Aug 23 Python
Python生成词云的实现代码
Jan 14 Python
Python 如何批量更新已安装的库
May 26 Python
python Xpath语法的使用
Nov 26 Python
MoviePy简介及Python视频剪辑自动化
Dec 18 Python
python基础之while循环语句的使用
Apr 20 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中的正则表达式以及模式匹配
2013/06/19 PHP
PHP技术开发微信公众平台
2015/07/22 PHP
PHP中使用curl伪造IP的简单方法
2015/08/07 PHP
php cli配置文件问题分析
2015/10/15 PHP
PHP错误Warning:mysql_query()解决方法
2015/10/24 PHP
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
javascript高级选择器querySelector和querySelectorAll全面解析
2016/04/07 Javascript
jquery实现静态搜索功能(可输入搜索文字)
2017/03/28 jQuery
微信小程序 request接口的封装实例代码
2017/04/26 Javascript
JavaScript实现form表单的多文件上传
2020/03/27 Javascript
vue-loader教程介绍
2017/06/14 Javascript
vue通过watch对input做字数限定的方法
2017/07/13 Javascript
highcharts 在angular中的使用示例代码
2017/09/20 Javascript
Vue v2.4中新增的$attrs及$listeners属性使用教程
2018/01/08 Javascript
Python爬虫爬取美剧网站的实现代码
2016/09/03 Python
利用python获取Ping结果示例代码
2017/07/06 Python
详解Python中的动态属性和特性
2018/04/07 Python
python库lxml在linux和WIN系统下的安装
2018/06/24 Python
python语言线程标准库threading.local解读总结
2019/11/10 Python
pytorch简介
2020/11/11 Python
用CSS3实现无限循环的无缝滚动的示例代码
2017/11/01 HTML / CSS
JBL英国官网:JBL UK
2018/07/04 全球购物
Dr.Jart+美国官网:韩国药妆品牌
2019/01/18 全球购物
2013年入党人员的自我鉴定
2013/10/25 职场文书
学生拾金不昧表扬信
2014/01/21 职场文书
学校社会实践活动总结
2014/07/03 职场文书
2014社会治安综合治理工作总结
2014/12/04 职场文书
世界环境日活动总结
2015/02/11 职场文书
研究生个人学年总结
2015/02/14 职场文书
大学生求职信怎么写
2015/03/19 职场文书
大学生社会实践感想
2015/08/11 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
WordPress多语言翻译插件 - WPML使用教程
2021/04/01 PHP
MySQL的安装与配置详细教程
2021/06/26 MySQL