Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python+;eyeD3:无法将日期保存到mp3元数据_Python_Date_Tags_Mp3_Metadata - Fatal编程技术网

Python+;eyeD3:无法将日期保存到mp3元数据

Python+;eyeD3:无法将日期保存到mp3元数据,python,date,tags,mp3,metadata,Python,Date,Tags,Mp3,Metadata,我正在尝试使用Python及其Eyed3API更新一堆mp3文件的元数据 它看起来相当简单,我使用的代码如下所示: if not eyeD3.isMp3File(filename): print filename, 'is not a mp3 file. Ignoring it.' tag = eyeD3.Tag() tag.link(filename) tag.setVersion(eyeD3.ID3_V2) tag.setTextEncoding(eyeD3.UTF_8_ENCODI

我正在尝试使用Python及其Eyed3API更新一堆mp3文件的元数据

它看起来相当简单,我使用的代码如下所示:

if not eyeD3.isMp3File(filename):
    print filename, 'is not a mp3 file. Ignoring it.'
tag = eyeD3.Tag()
tag.link(filename)
tag.setVersion(eyeD3.ID3_V2)
tag.setTextEncoding(eyeD3.UTF_8_ENCODING)
tag.setTitle(dataset['Title'])
tag.setDate(datetime.datetime.now().year)
tag.update()
发生的情况是:代码以静默方式执行(没有错误或异常),标题设置正确,日期在目标文件中未设置。它保持为空或设置为上一个值(两种情况下均选中)

setDate函数的帮助并不特别有趣:

setDate(self, year, month=None, dayOfMonth=None, hour=None, minute=None, second=None, fid=None) unbound eyeD3.tag.Tag method

。。。但是告诉我我的电话应该没问题。你知道这里发生了什么吗?

我和你有同样的问题。最后,我放弃了eyeD3库,
诱变剂是一个很好的选择

下面是我在Python中使用
诱变剂.mp3
的示例

from mutagen.mp3 import MP3
from mutagen.id3 import ID3, APIC, TIT2, TPE1, TRCK, TALB, USLT, error
# ID3 info:
# APIC: picture
# TIT2: title
# TPE1: artist
# TRCK: track number
# TALB: album
# USLT: lyric
def id3_cook(directory, filename, item, track_num):
    pic_file = directory + '/cover.jpg' # pic file
    audio = MP3(filename, ID3=ID3)
    try:
        audio.add_tags()
    except:
        pass
    audio.tags.add(APIC(
        encoding=3,
        mime='image/jpeg',
        type=3,
        desc=u'Cover Picture',
        data=open(pic_file).read()
    ))
    audio.tags.add(TIT2(encoding=3, text=item['song'].decode('utf-8')))
    audio.tags.add(TALB(encoding=3, text=item['album'].decode('utf-8')))
    audio.tags.add(TPE1(encoding=3, text=item['artist'].decode('utf-8')))
    audio.tags.add(TRCK(encoding=3, text=str(track_num).decode('utf-8')))
    audio.tags.add(USLT(encoding=3, lang=u'eng', desc=u'desc', text=item['lyric'].decode('utf-8')))
    audio.save()

浏览了源代码之后,我没有发现任何明显的错误。我发现命令行eyeD3的功能完全相同:不更改日期,但也不报告任何错误。由于最后期限即将到来,我使用了诱变剂。我想我们只是在eyeD3的某个地方发现了一只虫子。