Разница в отработке команды subprocess.call

Необходимо преобразовать файлы с расширением .WAV в .MP3 с помощью ffmpeg.

Ниже простой код:

import os import subprocess

path = r'/home/nail/Voice/target_new/X/' # Здесь лежат файлы *.wav

os.chdir(path)

lstdir = os.listdir(path)

lstdir.sort()

for ls in lstdir:

if os.path.isfile(ls) :

    s = 'ffmpeg -i '+ls+' '+ls.replace('.wav', '.mp3')
    subprocess.call(args=s)

При выполнении кода получаю ошибку: FileNotFoundError: [Errno 2] No such file or directory: 'ffmpeg -i x002__0_00_05.wav x002__0_00_05.mp3': 'ffmpeg -i x002__0_00_05.wav x002__0_00_05.mp3'

При выполнении этой же команды в терминале все отрабатывает нормально. Если заменю строку subprocess.call(args=s) на subprocess.call(args=s, shell=True) программа тоже нормально отработает без ошибок.

В чем причина такого разного поведения?


Ответы (0 шт):