errno 2: 没有那个文件或目录

errno 2: No such file or directory

我已经看到多个讨论此问题的线程,但我找不到适合我的情况的线程。我正在使用一个名为 audiodiff 的库,它基本上可以告诉您两个音频文件是否具有相同的内容。我已经录制了 2 个以前保存的 .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

我在这里看到的解释与光盘有关,但我所有的文件都在同一个文件夹中。所以,我不确定这如何适用。对此的任何见解都会很棒。 TIA.

您可以使用 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

您是否检查了 audiodiff 的依赖项?

audiodiff requires FFmpeg to be installed in your system. The path is ffmpeg by default, but you can change it by following ways (later rules take precedence over earlier ones).

  1. audiodiff.FFMPEG_BIN module property
  2. FFMPEG_BIN environment variable
  3. ffmpeg_bin flag (commandline tool only)