python中如何调用shell 中OS.SYSTEM等方法

 我来答
圣诞快乐乆
2012-11-10 · 超过11用户采纳过TA的回答
知道答主
回答量:32
采纳率:0%
帮助的人:32万
展开全部
这实际上是使用C标准库函数system()实现的。这个函数在执行command命令时需要重新打开一个终端,并且无法保存command命令的执行结果。1.2 os.popen(command,mode) 打开一个与command进程之间的管道。这个函数的返回值是一个文件对象,可以读或者写(由mode决定,mode默认是’r')。如果mode为’r',可以使用此函数的返回值调用read()来获取command命令的执行结果。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"]) subprocess.call(command,shell=True)2.2 subprocess.Popen(command,shell=True) 如果command不是一个可执行文件,shell=True不可省。 使用subprocess模块可以创建新的进程,可以与新建进程的输入/输出/错误管道连通,并可以获得新建进程执行的返回状态。使用subprocess模块的目的是替代os.system()、os.popen*()、commands.*等旧的函数或模块。 最简单的方法是使用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) 若置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、classsubprocess.Popen 最简单的用法是: import subprocess subprocess.Popen(command,shell=True) 如果command不是一个可执行文件,shell=True不可省。前面三个方法只能用于执行程序和打开文件,不能处理URL,打开URL地址可用webbrowser模块提供的功能。<proinsight-br>
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式