FilleNotFoundError: [WinError 2] Системе не удается найти указанный файл - PullRequest
0 голосов
/ 19 апреля 2020

Я везде искал решение этой проблемы, но по какой-то причине ничего не работает. Я пишу сценарий для преобразования MIDI-файлов в WAV-файлы, используя библиотеку python, которая называется midi2audio. Сценарий находится в том же каталоге, что и все MIDI-файлы, и пытается создать и заполнить каталог на рабочем столе.

Я получаю следующую ошибку: FileNotFoundError: [WinError 2] Системе не удается найти указанный файл

Код ниже:

from midi2audio import FluidSynth
import os

files = [file for file in os.listdir('./') if '.mid' in file]
target_dir = 'C:\\Users\\Arham\\Desktop\\GuitarWavs'

print(os.getcwd())

if not os.path.exists(target_dir):
    print("Creating directory: " + target_dir)
    os.mkdir(target_dir)

print("Converting files...")
for file in files:
    fs = FluidSynth()
    print(file)
    fs.midi_to_audio(file, target_dir+'\\'+file[0:file.index('.mid')]+'.wav') #error here

print('Convertion complete!')

Список «files» содержит все правильные имена файлов, а os.getcwd () возвращает каталог, в котором находятся midi-файлы и скрипт. Я особенно смущен, потому что, насколько я вижу, путь, переданный функции, пытающейся найти и открыть этот файл, является правильным.

Для ясности структура каталогов:

Desktop
----FilewithMidis
--------script.py
--------midi files
----GuitarWavs (destination folder)

I попытался: дать явный путь к файлу ("C: / Users / .."), используя ./file для ссылки на него, используя только имя файла, используя os.path.join, чтобы объединить путь с именем файла .

Я очень ценю любую помощь в этом! Спасибо!

РЕДАКТИРОВАТЬ Трассировка стека ниже:

Traceback (most recent call last):
  File "miditowav.py", line 27, in <module>
    fs.midi_to_audio(os.path.join(os.getcwd(),file), target_dir+'\\'+file[0:file.index('.mid')]+'.wav')
  File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\site-packages\midi2audio.py", line 46, in midi_to_audio
    subprocess.call(['fluidsynth', '-ni', self.sound_font, midi_file, '-F', audio_file, '-r', str(self.sample_rate)])
  File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 323, in call
    with Popen(*popenargs, **kwargs) as p:
  File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 775, in __init__
    restore_signals, start_new_session)
  File "C:\Users\Arham\AppData\Local\Programs\Python\Python37\lib\subprocess.py", line 1178, in _execute_child
    startupinfo)
FileNotFoundError: [WinError 2] The system cannot find the file specified

Я начинаю думать, что это проблема с Fluidsynth, я слышал кое-что о необходимости добавить это к моей переменной Path, но я не знаю, где он установлен, так как я использовал pip.

...