擅长:python、mysql、java
<p>我认为问题出在模块内。</p>
<p>我使用以下代码进行了一些调试:</p>
<pre><code>from eyed3 import id3
tag = id3.Tag()
tag.parse("myfile.mp3")
print(tag.artist)
</code></pre>
<p>在parse函数中,打开文件,然后将其传递给loadV2Tag(fileobject)。然后,模块读取文件头的前几行并检查它是否以ID3开头。</p>
<pre><code>if f.read(3) != "ID3":
return False
</code></pre>
<p>这里它返回false,我认为这是错误所在,因为如果我自己尝试读取头,它肯定是ID3。</p>
<pre><code>>>> f = open("myfile.mp3", "rb")
>>> print(f.read(3))
b'ID3'
</code></pre>
<p>但是,在0.8版之前,不需要完全支持python3,这是根据<a href="https://bitbucket.org/nicfit/eyed3/issues/25/python-3-compatibilty" rel="nofollow">https://bitbucket.org/nicfit/eyed3/issues/25/python-3-compatibilty</a>提供的:<a href="https://bitbucket.org/nicfit/eyed3/branch/py3" rel="nofollow">https://bitbucket.org/nicfit/eyed3/branch/py3</a></p>