在Python程式碼中呼叫windows command的方法
阿新 • • 發佈:2019-01-09
為了把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