在Python代码中调用windows command的方法

来源:互联网 发布:linux关机时执行脚本 编辑:程序博客网 时间:2024/05/19 01:10

为了把sikuli的代码移动到pyunit的框架上,需要在代码里执行windows的command。

使用的方法很简单。Python的 os模块可以调用command line的指令。使用的时候需要import os。示例代码如下:

import oscmd = 'dir'os.system(cmd)

在IDE或者windows命令行中运行这段脚本,都会得到当前脚本所在目录的dir信息。

1)在IDE(这里用的是Spyder)中运行这段代码的输出


2)在windows命令行运行这段代码的输出


但是当我试着在这个目录下使用“cd”命令进入其它目录,并调用“dir”命令时,得到的结果确跟我想象的不一样。

import osos.system('cd D:\Program Files\pythonxy')os.system('dir')
这段代码的输出仍然跟上面的代码一样,输出的是projects目录下的dir信息。而我期望的输出是pythonxy目录下的信息。这样当你需要在某个目录下运行可执行文件时,就会找不到这个文件。例如运行下面的代码就会报错,因为目录仍然是在python脚本所在的目录下。

import osos.system('cd D:\Program Files\SPlayer')os.system('splayer.exe')
 Spyder的输出如下:


其原因在于每次os.system都会创建一个shell进程来执行其中的命令,所以两个os.system之间很难建立起关联。这时我们可以用 & 符号把两个命令在一个os.system里连起来执行。代码如下:

import osos.system('cd D:\Program Files\SPlayer & splayer.exe')

运行这段代码就可以顺利的启动splayer.exe程序。同样采用这种方式也可以查看pythonxy目录下的dir信息。


PS:

&符号在shell中的几种用法

1)三个命令同时执行 

command1&command2&command3

2)不管前面命令执行成功没有,后面的命令继续执行 

command1;command2;command3     

3)只有前面命令执行成功,后面命令才继续执行

command1&&command2             

0 0
原创粉丝点击