Аргументы подпроцесса Python

Например, я использую ffplay и хочу запустить эту команду -bufsize[:stream_specifier] integer (output,audio,video)

На данный момент у меня есть это:

 subprocess.call(["ffplay", "-vn", "-nodisp","-bufsize 4096", "%s" % url]) 

Но это говорит о том, что это неверно.

  • Проверьте, использует ли функция @classmethod
  • Python: -mno -cygwin
  • Как я могу описать django-нос, где мои тесты?
  • Пользовательская оболочка для индексации списка питонов, начинающаяся с 1
  • Самый простой способ построения данных на карте страны с помощью python
  • показ прогресса при нерестах и ​​запуске подпроцесса
  • Нейронная сеть XOR gate не изучает
  • Замените строку, расположенную между
  • 2 Solutions collect form web for “Аргументы подпроцесса Python”

    Как отметил JBernardo в комментарии, разделите аргумент "-bufsize 4096" на два: "-bufsize", "4096" . Каждый аргумент необходимо разделить, если subprocess.call используется с shell=False (по умолчанию). Вы также можете указать shell=True и дать целую команду как одну строку, но это не рекомендуется из-за потенциальных уязвимостей безопасности.

    Вам не нужно использовать форматирование строк, где у вас есть "%s" % url . Если url является строкой, передайте ее напрямую, иначе вызовите str(url) чтобы получить строковое представление.

    Это путь:

     url = 'http://www.whatever.com' cmd = 'ffplay -vn -nodisp -bufsize 4096 '.split() subprocess.call(cmd + [str(url)], shell=False) 
    Python - лучший язык программирования в мире.