2016-10-09 3 views
1

Я создал команду VLC, которая преобразует файл opus в mp3. Эта команда работает в Windows CMD, но не работает в подпроцессе в Python 3.5. Я пробовал различную конфигурацию команды, но без успеха, нет сообщения об ошибке. Я просто приветствую окно командной строки VLC без процесса. Это команда.Команда работает в CMD, но не подпроцессе

p = subprocess.Popen(["C:/Program Files (x86)/VideoLAN/VLC/vlc.exe", "-I dummy -vvv "E:\\some_dir\\a.opus" --sout=#transcode{acodec=mpga,ab=192}:standard{access=file,dst="E:\\some_dir\\a.mp3"]) 

Я могу предоставить любую требуемую информацию. Весь вход был бы оценен.

+0

Пуск, заменив внутренние двойные кавычки одинарные кавычки (или наоборот). То, что у вас есть (неэкранированные вложенные двойные кавычки), является синтаксической ошибкой в ​​Python. – dkasak

+0

Вложенные кавычки являются следствием попытки помещать каждый аргумент в одну строку, с которой неправильно начинать. – chepner

ответ

1

Каждый аргумент команды должен быть свой собственный элемент списка:

p = subprocess.Popen(["C:/Program Files (x86)/VideoLAN/VLC/vlc.exe", 
         "-I", "dummy", "-vvv", 
         "E:\\some_dir\\a.opus", 
         "--", 
         "sout=#transcode{acodec=mpga,ab=192}:standard{access=file,dst=E:\\some_dir\\a.mp3" 
        ]) 
Смежные вопросы