python调用shell命令的方法有许多
1.1 os.system(command)
1.2 os.popen(command,mode)
1.3 commands.getstatusoutput(command)
使用os.popen()函数执行command命令并返回一个元组(status,output),分别表示command命令执行的返回状态和执行结果。对command的执行实际上是按照{command;}2>&1的方式,所以output中包含控制台输出信息或者错误信息。output中不包含尾部的换行符。
2.1 subprocess.call(["some_command","some_argument","another_argument_or_path"])
2.2 subprocess.Popen(command,shell=True)
最简单的方法是使用classsubprocess.Popen(command,shell=True)。Popen类有Popen.stdin,Popen.stdout,Popen.stderr三个有用的属性,可以实现与子进程的通信。
将调用shell的结果赋值给python变量
handle =subprocess.Popen(command, shell=True,stdout=subprocess.PIPE)
printhandle.communicate()[0]
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在Python/wxPython环境下,执行外部命令或者说在Python程序中启动另一个程序的方法一般有这么几个:
1、os.system(command)
2、wx.Execute(command,syn=wx.EXEC_ASYNC, callback=None)
os.system()和wx.Execute()都利用系统的shell,执行时会出现shell窗口。如在Windows下会弹出控制台窗口,不美观。下面的两种方法则没有这个缺点。
3、classsubprocess.Popen
前面三个方法只能用于执行程序和打开文件,不能处理URL,打开URL地址可用webbrowser模块提供的功能。
4、webbrowser.open(url)
以上在Windows2000,Python2.4a1,wxPython2.5.1运行。
modify:还有一种方式:subprocess.call(*args,**kwargs)