Разница в отработке команды 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) программа тоже нормально отработает без ошибок.
В чем причина такого разного поведения?