1. 程式人生 > >在Python程式碼中呼叫windows command的方法

在Python程式碼中呼叫windows command的方法

為了把sikuli的程式碼移動到pyunit的框架上,需要在程式碼裡執行windows的command。

使用的方法很簡單。Python的 os模組可以呼叫command line的指令。使用的時候需要import os。示例程式碼如下:

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

在IDE或者windows命令列中執行這段指令碼,都會得到當前指令碼所在目錄的dir資訊。

1)在IDE(這裡用的是Spyder)中執行這段程式碼的輸出


2)在windows命令列執行這段程式碼的輸出


但是當我試著在這個目錄下使用“cd”命令進入其它目錄,並呼叫“dir”命令時,得到的結果確跟我想象的不一樣。

import os

os.system('cd D:\Program Files\pythonxy')
os.system('dir')
這段程式碼的輸出仍然跟上面的程式碼一樣,輸出的是projects目錄下的dir資訊。而我期望的輸出是pythonxy目錄下的資訊。這樣當你需要在某個目錄下執行可執行檔案時,就會找不到這個檔案。例如執行下面的程式碼就會報錯,因為目錄仍然是在python指令碼所在的目錄下。
import os

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


其原因在於每次os.system都會建立一個shell程序來執行其中的命令,所以兩個os.system之間很難建立起關聯。這時我們可以用 & 符號把兩個命令在一個os.system裡連起來執行。程式碼如下:

import os

os.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