诱变剂:将 ID3 标签保存到变量
Mutagen: Save ID3 tag to variable
我正在尝试创建一个 ID3 标签并将其保存到一个变量中,而不是将其输出到一个文件中。有什么办法吗?
这适用于保存,但我找不到一种方法来简单地将原始字节保存在变量中,而不必写出文件然后将其读回:
import mutagen
from mutagen.id3 import ID3
def no_padding(info):
# this will remove all padding
return 0
tags = ID3()
tags["TIT2"] = mutagen.id3.TIT2(encoding=3, text=u"Title here")
tags["TPE1"] = mutagen.id3.TPE1(encoding=3, text=u"Artist here")
tags.save('/tmp/header.id3', padding=no_padding)
只需使用 io.BytesIO
对象而不是传递文件名:
>>> import io
>>> import mutagen.id3
>>> tags = mutagen.id3.ID3()
>>> tags["TIT2"] = mutagen.id3.TIT2(encoding=3, text=u"Title here")
>>> tags["TPE1"] = mutagen.id3.TPE1(encoding=3, text=u"Artist here")
>>> buf = io.BytesIO()
>>> tags.save(buf, padding=lambda x: 0)
>>> buf.getvalue()
b'ID3\x04\x00\x00\x00\x00\x00-TIT2\x00\x00\x00\x0c\x00\x00\x03Title here\x00TPE1\x00\x00\x00\r\x00\x00\x03Artist here\x00'
我正在尝试创建一个 ID3 标签并将其保存到一个变量中,而不是将其输出到一个文件中。有什么办法吗?
这适用于保存,但我找不到一种方法来简单地将原始字节保存在变量中,而不必写出文件然后将其读回:
import mutagen
from mutagen.id3 import ID3
def no_padding(info):
# this will remove all padding
return 0
tags = ID3()
tags["TIT2"] = mutagen.id3.TIT2(encoding=3, text=u"Title here")
tags["TPE1"] = mutagen.id3.TPE1(encoding=3, text=u"Artist here")
tags.save('/tmp/header.id3', padding=no_padding)
只需使用 io.BytesIO
对象而不是传递文件名:
>>> import io
>>> import mutagen.id3
>>> tags = mutagen.id3.ID3()
>>> tags["TIT2"] = mutagen.id3.TIT2(encoding=3, text=u"Title here")
>>> tags["TPE1"] = mutagen.id3.TPE1(encoding=3, text=u"Artist here")
>>> buf = io.BytesIO()
>>> tags.save(buf, padding=lambda x: 0)
>>> buf.getvalue()
b'ID3\x04\x00\x00\x00\x00\x00-TIT2\x00\x00\x00\x0c\x00\x00\x03Title here\x00TPE1\x00\x00\x00\r\x00\x00\x03Artist here\x00'