在挖掘了一下之后,description
实际上只是图像的描述。当您调用时,x.tag.images
您会得到一个 ImageAccessor 对象,它基本上只是一个包含您的图像的可迭代对象。如果您投射x.tag.images
到一个列表,您可以看到它包含 1 个 ImageFrame 对象(在我的测试用例中)。当您调用 时x.tag.images.remove()
, eyed3 需要知道要删除哪个图像,它会根据图像描述选择要删除的图像。您可以使用类似的方法获取每个图像的描述。
[y.description for y in x.tag.images]
一旦您知道要删除的图像的描述,您应该能够将其传递给删除函数,并且该特定图像将被删除。
>>> x.tag.images
<eyed3.id3.tag.ImagesAccessor object at 0x1053c8400>
>>> list(x.tag.images)
[<eyed3.id3.frames.ImageFrame object at 0x1050cc4a8>]
>>> x.tag.images.remove()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/Users/jperoutek/test_env/lib/python3.6/site-packages/eyed3/utils/__init__.py", line 170, in wrapped_fn
return fn(*args, **kwargs)
TypeError: remove() missing 1 required positional argument: 'description'
>>> x.tag.images.remove('')
<eyed3.id3.frames.ImageFrame object at 0x1050cc4a8>
>>> x.tag.images
<eyed3.id3.tag.ImagesAccessor object at 0x1053c8400>
>>> list(x.tag.images)
[]