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 15 Python
Python中优化NumPy包使用性能的教程
Apr 23 Python
python搜索指定目录的方法
Apr 29 Python
python自动zip压缩目录的方法
Jun 28 Python
Python基于scapy实现修改IP发送请求的方法示例
Jul 08 Python
Python装饰器用法实例总结
May 26 Python
Python实现一个数组除以一个数的例子
Jul 20 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
Python3变量与基本数据类型用法实例分析
Feb 14 Python
深入了解Python装饰器的高级用法
Aug 13 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
python操作xlsx格式文件并读取
Jun 02 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
example2.php
2006/10/09 PHP
snoopy PHP版的网络客户端提供本地下载
2008/04/15 PHP
PHP-Java-Bridge使用笔记
2014/09/22 PHP
PHP 输出缓冲控制(Output Control)详解
2016/08/25 PHP
php实现微信支付之退款功能
2018/05/30 PHP
JavaScript版代码高亮
2006/06/26 Javascript
JavaScript Prototype对象
2009/01/07 Javascript
jQuery 前的按键判断代码
2010/03/19 Javascript
js鼠标滑过弹出层的定位IE6bug解决办法
2012/12/26 Javascript
javascript设置连续两次点击按钮时间间隔的方法
2014/10/28 Javascript
12个超实用的JQuery代码片段
2015/11/02 Javascript
js实现的彩色方块飞舞奇幻效果
2016/01/27 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
jQuery电话号码验证实例
2017/01/05 Javascript
详解vue express启动数据服务
2017/07/05 Javascript
微信小程序获取微信运动步数的实例代码
2017/07/20 Javascript
vue.js动画中的js钩子函数的实现
2018/07/06 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
es6 for循环中let和var区别详解
2020/01/12 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
JS+CSS实现动态时钟
2021/02/19 Javascript
Python 分析Nginx访问日志并保存到MySQL数据库实例
2014/03/13 Python
python实现rest请求api示例
2014/04/22 Python
python框架中flask知识点总结
2018/08/17 Python
Python3日期与时间戳转换的几种方法详解
2019/06/04 Python
python 5个顶级异步框架推荐
2020/09/09 Python
一家专门做特卖的网站:唯品会
2016/10/09 全球购物
美国机场停车位预订:About Airport Parking
2018/03/26 全球购物
中职生自我鉴定范文
2013/10/03 职场文书
名企HR怎样看待求职信
2014/02/23 职场文书
升学宴主持词
2014/04/02 职场文书
交通志愿者活动总结
2014/06/27 职场文书
党的群众路线教育实践活动个人整改措施材料
2014/11/04 职场文书
音乐教师求职信范文
2015/03/20 职场文书
法律意见书范文
2015/06/04 职场文书
win10重装系统后上不了网怎么办 win10重装系统网络故障的解决办法
2022/07/23 数码科技