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

 这篇文章主要介绍了python执行外部程序的常用方法,实例总结了Python使用os模块及commands模块执行外部程序的技巧,非常具有实用价值,需要的朋友可以参考下

 
 

本文实例总结了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时,需要对得到的数据进行处理。一个使用例子如下:

?

1
2
3
4
5
6
7
8

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程序设计有所帮助。

时间: 2024-08-02 00:54:27

python执行外部程序的常用方法小结的相关文章

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

本文实例总结了python执行外部程序的常用方法.分享给大家供大家参考.具体分析如下: 在python中我们可以通过下面的方法直接调用系统命令或者外部程序,使用方便 1.os模块的execl方法 Python的execl系统方法同Unix的exec系统调用是一致的.这些方法适用于在子进程中调用外部程序的情况,因为外部程序会替换当前进程的代码,不会返回. 也就是说,这个shell进程被占领,将执行第一个execl的命令程序而不再返回. 2.使用os模块的system方法 system方法会创建子进

python执行子进程实现进程间通信的方法

  本文实例讲述了python执行子进程实现进程间通信的方法.分享给大家供大家参考.具体实现方法如下: a.py: ? 1 2 3 4 5 6 7 import subprocess, time subproc = subprocess.Popen(['c:python31python.exe', 'c:/b.py'], stdin=subprocess.PIPE, shell=True) time.sleep(0.5) print('start') subproc.stdin.write('d

如何用Python执行常见的Excel和SQL任务

本教程的代码和数据可在 Github 资源库 中找到.有关如何使用 Github 的更多信息,请参阅本指南. 数据从业者有许多工具可用于分割数据.有些人使用 Excel,有些人使用SQL,有些人使用Python.对于某些任务,使用 Python 的优点是显而易见的.以更快的速度处理更大的数据集.使用基于 Python 构建的开源机器学习库.你可以轻松导入和导出不同格式的数据. 由于其多功能性,Python 可以成为任何数据分析师工具箱的重要组成部分.但是,这很难开始.大多数数据分析师可能熟悉 S

python执行shell命令四法

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://koumm.blog.51cto.com/703525/1438687 整理:python执行shell命令四法,示例如下: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/env python   # -*- codin

Java 进程执行外部程序造成阻塞的一种原因_java

查了好多资料,差点就动手翻Java源码了,最后结合一篇文章(忘记出处了),想到了输出流会阻塞进程执行. Java进程执行有一个输入流,两个输出流(相对于外部程序).当两个输出流有内容输出,而Java执行程序没有及时清空输出流时就会阻塞进程. 现贴出代码,希望能帮助到有需要的同行: 复制代码 代码如下: /**  * pdf转swf函数  * @param path 输入输出文件路径  * @param inputFileName 输入文件名  * @param outputFileName 输出

php显示时间常用方法小结_php技巧

本文实例讲述了php显示时间常用方法.分享给大家供大家参考.具体分析如下: 一.PHP函数Date()获取当前时间 代码: 复制代码 代码如下: <?php echo $showtime=date("Y-m-d H:i:s");?> 显示的格式: 年-月-日 小时:分钟:秒 相关参数: a:"am"或者"pm" A:"AM"或者"PM" d:几日,二位数字,若不足二位则前面补零,如: "

Mac OS下PHP环境搭建及PHP操作MySQL常用方法小结_Mysql

Mac本地环境搭建在Mac系统,我们可以使用MAMP Pro (官方网站:https://www.mamp.info/en/)软件来搭建本地服务器.安装好这款软件,网站的目录在 /Applications/MAMP/htdocs 文件夹里,只需将文件放入该文件夹中,就可以通过http://localhost:8888来访问了,或者通过点击如下红色下划线按钮来快速访问站点. mac系统下安装php,两行即可. brew tap josegonzalez/homebrew-php brew inst

Python 执行字符串表达式函数(eval exec execfile)_python

仔细研读后学习了三个函数: eval:计算字符串中的表达式 exec:执行字符串中的语句 execfile:用来执行一个文件 需注意的是,exec是一个语句,而eval()和execfile()则是内建built-in函数. Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win32 Type "help", "copyright", "credits

php去除字符串中空字符的常用方法小结_php技巧

本文实例总结了php去除字符串中空字符的常用方法.分享给大家供大家参考.具体分析如下: php中包含四个可以去除字符串空格的函数: trim() – 去除字符串两端的空字符 ltrim() – 去除字符串前端的空字符 rtrim() – 去除字符串末尾的空字符 chop() –同rtrim(). 代码如下: <?php $text = "\t \t jb51.net!\t \t "; $leftTrimmed = ltrim($text); $rightTrimmed = rtr