python执行外部命令或URL的方法

发布时间:2020-10-11编辑:脚本学堂
在Python/wxPython环境下,执行外部命令或在Python程序中启动另一个程序的方法,通常用以下几种:

python/wxPython环境下,执行外部命令或在Python程序中启动另一个程序的方法,通常用以下几种:

1、os.system(command)

2、wx.Execute(command, syn=wx.EXEC_ASYNC, callback=None)
若置syn为wx.EXEC_ASYNC则wx.Excute函数立即返回,若syn=wx.EXEC_SYNC则等待调用的程序结束后再返回。
callback是一个wx.Process变量,如果callback不为None且syn=wx.EXEC_ASYNC,则程序结束后将调用wx.Process.OnTerminate()函数。

os.system()和wx.Execute()都利用系统的shell,执行时会出现shell窗口。如在Windows下会弹出控制台窗口,不美观。下面的两种方法则没有这个缺点。

3、class subprocess.Popen
最简单的用法:
 

复制代码 代码如下:
import subprocess
subprocess.Popen(command, shell=True)

如果command不是一个可执行文件,shell=True不可省。

前面三个方法只能用于执行程序和打开文件,不能处理URL,打开url地址可用webbrowser模块提供的功能。

4、webbrowser.open(url)
调用系统缺省浏览器打开URL地址,如 webbrowser.open(‘http://www.google.com’),也可以利用webbrowser.open(‘h:python.zip’)来执行程序。这样可以不必区分是文件名还是URL,不知道在linux下是否可行。

以上在Windows2003,Python2.4a1,wxPython 2.5.1运行。

modify:还有一种方式:
subprocess.call(*args, **kwargs)