2017-02-15 2 views
0

Я знаю, что люди обращаются к подобным вещам, но я все еще смущен.Выполнение команды командной строки из Python

Я хочу выполнить команду «Inventory.bat rap.t00z.awp236pgrbf00.grib2 rap.t00z.awp236pgrbf00 LoLa 25 48 33 -122 -83» в командной строке Windows с использованием Python.

Мой текущий сценарий 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=True в функции subprocess.

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

@Waterguy не уверен, что подпроцесс должен дождаться завершения команды до ее возвращения. Возможно, сама оболочка cmd запускает что-то, не дожидаясь ее, вы можете проверить, поставив «echo» в конце вашего командного файла. Если это так, вам нужно попросить SuperUser или в другом месте. –