执行命令的几种方式
言用来执行一个系统的命令相对python来说还是有点复杂的,执行命令是一个非常常见的需求,如调用一个系统命令,启一个exe等,这里分为几种情况,之后统一总结一下。
以下以ping www.baidu.com 为例依次执行一下各种命令,主要使用标准库中的os/exec。 在执行命令的时候,我们主要使用的是os/exec包主的Cmd结构体方法,Cmd的结构体定义如下 Cmd结构体定义[1]。 主要的参数有但是我们一般不直接构造Cmd结构体,而是通过exec.Command() 函数返回一个Cmd结构体指针 如 exec.Command("ping","www.baidu.com") ping为命令,"www.baidu.com" 为参数,在得到*Cmd以后再使用结构体方法Run,Start等方法来真正的执行命令。 只执行命令,不要输出结果这里的输出结果只是表明命令执行了,但是它具体的输出我们不关心,在这种其实用的挺多的,我们只是想执行命令,在python里我们可以使用os.system() 函数来执行,当然这个是阻塞的执行。序什么也没有输出,但是停顿的一段时间后才退出。如果换成command.Start() 则程序运行起来以后马上就停止了。
如果想要获取到像python 那种 os.system的执行结果,其实这里的结果应该是ExitError,程序的退出码,应该怎么操作呢?这里exec包里有一个专门的结构体ExitError,使用它的一些方法可以获取到ExitCode,但是想要获取到ExitCode得到得到命令结束,也就是要阻塞的运行,上面使用Run() 方法可以阻塞等待执行结果,使用Start()方法以后,也可以使用Wait()方法来等待执行结束。 (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |