Я надеюсь, что смогу хорошо описать свою проблему, заранее извините, если это сложно.
Вопрос. Вставляет ли Python (или вызовы os.path) автоматически возврат после определенного количества символов?
Предыстория: я пытаюсь извлечь акустические характеристики из файлов .wav с помощью инструмента openSMILE. Для этого я передаю строки пути (входной файл и выходной файл) через подпроцесс.
Вызов SMILExtract принимает 3 аргумента (-C для конфигурации, -I для входного файла, -O для выходного файла). Я подготавливаю эти 3 аргумента со строковыми операциями и сохраняю аргументы в списке, который передается вызову подпроцесса.
def extractFeatures(self,inputFile):
self.openSMILEsettings.append("-I " + inputFile)
outputFile = os.path.dirname(inputFile) + "/featuresOf_" +os.path.basename(inputFile)[0:-3] + "arff"
self.openSMILEsettings.append("-O " + outputFile)
print self.openSMILEsettings[2]
print ' '.join(self.openSMILEsettings)
# print subprocess.check_output(['SMILExtract'] + self.openSMILEsettings)
extractFeatures("/media/USERNAME/MountPOINT/Dir1/Dir2/Dir3/02003_SomeSesssionNumber1_and2_2323123/audioFile.wav")
В консоли вывод команды печати (print ' '.join(...)) выглядит нормально (пример ниже)
-C OSconfig/IS12_speaker_trait.conf -I /media/USERNAME/MountPOINT/Dir1/Dir2/Dir3/02003_SomeSesssionNumber1_and2_2323123/audioFile.wav -O /media/USERNAME/MountPOINT/Dir1/Dir2/Dir3/02003_SomeSesssionNumber1_and2_2323123/featuresOf_audioFile.arff
Однако, когда я пытаюсь запустить код с вызовом подпроцесса, я получаю исключение. В целях отладки я скопировал вывод печати в текстовый редактор, и кажется, что вводится возврат, это выглядит так
-C OSconfig/IS12_speaker_trait.conf -I /media/USERNAME/MountPOINT/Dir1/Dir2/Dir3/02003_SomeSesssionNumber1_and2_2323123/audioFile.wav -O /media/USERNAME/MountPOINT/Dir1/Dir2/Dir3/02003_SomeSesssionNumber1_and2_2323123/featur
esOf_audioFile.arff