2017-02-15 259 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'来检查。如果是这样,你需要问超级用户或其他地方。 –