errno 2: нет такого файла или каталога

1

Я видел несколько потоков с этой проблемой, но я не могу найти тот, который применим к моей ситуации. Я использую библиотеку под названием audiodiff, которая по существу говорит вам, имеют ли два аудиофайла одинаковое содержимое. Я записал ранее сохраненные файлы.wav, которые я хочу проверить. Вот код:

import audiodiff
print audiodiff.audio_equal('output1.wav', 'output2.wav', ffmpeg_bin=None)

Вот результат, который я получаю в терминале, когда я его запускаю:

File "/usr/local/lib/python2.7/dist-packages/audiodiff/__init__.py", line 51, in audio_equal
return checksum(name1, ffmpeg_bin) == checksum(name2, ffmpeg_bin)
File "/usr/local/lib/python2.7/dist-packages/audiodiff/__init__.py", line 86, in checksum
stderr=subprocess.PIPE)
File "/usr/lib/python2.7/subprocess.py", line 710, in __init__
errread, errwrite)
File "/usr/lib/python2.7/subprocess.py", line 1327, in _execute_child
raise child_exception

Объяснения, которые я видел здесь, имеют какое-то отношение к компакт-диску, но все мои файлы находятся в одной папке. Итак, я не уверен, как это применимо. Любое понимание этого было бы удивительным. ТИА.

  • 0
    Вы уверены, что запускаете скрипт из каталога, содержащего оба файла?
Теги:
terminal
ubuntu-14.04

2 ответа

1
Лучший ответ

Вы можете создавать абсолютные пути к файлам с os.path инструментов Python os.path:

 import os

 fname = os.path.join(path_to_output1, 'output1.wav')

Если вам нужно захватить путь в начале приложения, прежде чем делать какой-либо каталог изменений, вы можете это сделать:

path = os.getcwd()  # Get the current path where the application was started

Не зная полного исходного кода, макета каталога и точного вызова программы, трудно сказать больше.

Больше информации:

https://docs.python.org/3.4/library/os.path.html?highlight=path#module-os.path

  • 0
    Эти две строки кода - это буквально весь код. Всего один .py файл с двумя двумя .wav файлами в одном каталоге. Я не уверен, нужно ли мне принимать во внимание, где хранится библиотека, которую я использую, или нет.
  • 0
    Я думаю, проблема в том, что он не находит ваши двоичные файлы ffmpeg, а не в том, что он не находит ваши аудиофайлы.
Показать ещё 2 комментария
0

Вы проверяли зависимости для audiodiff?

audiodiff требует, чтобы FFmpeg был установлен в вашей системе. По умолчанию путь ffmpeg, но вы можете изменить его, используя следующие способы (более поздние правила имеют приоритет над более ранними).

  1. Свойство модуля audiodiff.FFMPEG_BIN
  2. Переменная среды FFMPEG_BIN
  3. флаг ffmpeg_bin (только для командной строки)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню