подпроцесс Python, передавая файлы в качестве аргументов - PullRequest
0 голосов
/ 26 апреля 2018

Мне нужно запустить простую внешнюю программу внутри скрипта Python, передавая некоторые аргументы и некоторые файлы. Я пробовал вне сценария, и он работает правильно. Проблема в том, что я не знаю, почему внешняя программа не работает правильно, когда я запускаю внутри скрипта Python. Я думаю, что проблема в том, как я пишу имена файлов внутри аргументов. Я пробовал разные комбинации.

Я использую подпроцесс, Python 3.6 и Windows

> import subprocess
> 
> software=str(r"C:\Program Files\aa\bin\aa.exe")
> 
> c=subprocess.call([software,'-db', '–if "File_assembly.cxm"', '–of
> "File_assembly_dec.cxm"'], shell=True)

Большое спасибо за любые предложения. Я уничтожен! Ура, Carlo

1 Ответ

0 голосов
/ 26 апреля 2018

При вызове подпроцесса вы передаете команду с shell = True в виде строки:

subprocess.call(software + ' -db –if "File_assembly.cxm" –of "File_assembly_dec.cxm"', shell=True)

или без списка, если shell = False:

c=subprocess.call([software,'-db', '–if', '"File_assembly.cxm"', '–of', '"File_assembly_dec.cxm"'])

См. Документацию для получения дополнительной информации: subprocess.call ()

...