2017-02-15 249 views
0

我知道人們已經解決了類似的問題,但我仍然感到困惑。從Python執行命令行命令

我想在Windows命令行中使用Python執行命令「Inventory.bat rap.t00z.awp236pgrbf00.grib2 rap.t00z.awp236pgrbf00 LoLa 25 48 33 -122 -83」。

我現在的Python腳本是:

import subprocess 
subprocess.check_output(['Inventory.bat', 'rap.t00z.awp236pgrbf00.grib2 rap.t00z.awp236pgrbf00', 'LoLa', '25', '48', '33', '-122', '-83']) 

時被Python執行這是行不通的。我錯過了什麼?

感謝您的幫助!

回答

0

在Windows下,.bat文件由cmd shell執行。要使用shell,必須在subprocess函數中包含shell=True選項。

subprocess.check_output(['Inventory.bat', 'rap.t00z.awp236pgrbf00.grib2 rap.t00z.awp236pgrbf00', 'LoLa', '25', '48', '33', '-122', '-83'], shell=True) 
+0

@Waterguy不確定,應該等到子命令完成後才返回。可能cmd shell自己正在啓動一些東西而不用等,你可以通過在你的批處理文件末尾加一個'echo'來檢查。如果是這樣,你需要問超級用戶或其他地方。 –