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将ip地址转换成整数的方法
Mar 17 Python
Python2与python3中 for 循环语句基础与实例分析
Nov 20 Python
Python Pandas找到缺失值的位置方法
Apr 12 Python
python/sympy求解矩阵方程的方法
Nov 08 Python
用python3 urllib破解有道翻译反爬虫机制详解
Aug 14 Python
Python字典中的值为列表或字典的构造实例
Dec 16 Python
tensorflow获取预训练模型某层参数并赋值到当前网络指定层方式
Jan 24 Python
python GUI库图形界面开发之PyQt5输入对话框QInputDialog详细使用方法与实例
Feb 27 Python
python对文件的操作方法汇总
Feb 28 Python
Python文本文件的合并操作方法代码实例
Mar 31 Python
如何在windows下安装Pycham2020软件(方法步骤详解)
May 03 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 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
discuz Passport 通行证 整合笔记
2008/06/30 PHP
使用PHPWord生成word文档的方法详解
2019/06/06 PHP
PHP如何使用JWT做Api接口身份认证的实现
2020/02/03 PHP
PHP中SESSION过期设置
2021/03/09 PHP
javascript 去字符串空格终极版(支持utf8)
2009/11/14 Javascript
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
判断客户端浏览器是否安装了Flash插件的多种方法
2010/08/11 Javascript
js实现屏蔽默认快捷键调用自定义事件示例
2013/06/18 Javascript
与Math.pow 相反的函数使用介绍
2014/08/04 Javascript
javascript ajax的5种状态介绍
2014/08/18 Javascript
Nodejs中的this详解
2016/03/26 NodeJs
Bootstrap Table使用心得总结
2016/11/29 Javascript
vue实现nav导航栏的方法
2017/12/13 Javascript
利用js实现前后台传送Json的示例代码
2018/03/29 Javascript
Node.Js生成比特币地址代码解析
2018/04/21 Javascript
vue实现动态添加数据滚动条自动滚动到底部的示例代码
2018/07/06 Javascript
vue 刷新之后 嵌套路由不变 重新渲染页面的方法
2018/09/13 Javascript
解决包含在label标签下的checkbox在ie8及以下版本点击事件无效果兼容的问题
2019/10/27 Javascript
Javascript操作select控件代码实例
2020/02/14 Javascript
Vue列表如何实现滚动到指定位置样式改变效果
2020/05/09 Javascript
python 获取文件列表(或是目录例表)
2009/03/25 Python
Python中优化NumPy包使用性能的教程
2015/04/23 Python
使用python调用zxing库生成二维码图片详解
2017/01/10 Python
Numpy数据类型转换astype,dtype的方法
2018/06/09 Python
python异常触发及自定义异常类解析
2019/08/06 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
Python jieba库分词模式实例用法
2021/01/13 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
CSS3绘制圆角矩形的简单示例
2015/09/28 HTML / CSS
AE美国鹰日本官方网站: American Eagle Outfitters
2016/12/10 全球购物
Willer台湾:日本高速巴士/夜行巴士预约
2017/07/09 全球购物
个人简历自我评价范文
2014/02/04 职场文书
业务员的岗位职责
2014/03/15 职场文书
服务质量承诺书
2014/03/27 职场文书
2014年银行信贷员工作总结
2014/12/08 职场文书
Python中os模块的简单使用及重命名操作
2021/04/17 Python