簡體   English   中英

如何使用eyed3模塊從Mp3中刪除現有的專輯封面圖像

[英]How to remove existing album art image from an Mp3 using eyed3 module

我一直試圖使用eyed3模塊標記mp3文件,但不幸的是,我發現模塊文檔很難理解,並且想知道是否有人可以幫助我?..文檔可以在https://eyed3.readthedocs.io找到

我試圖使用它刪除現有的專輯封面圖像:

import eyed3
x = eyed3.load('file_path')
x.tag._images.remove()
x.tag.save()

但是當我運行此代碼時,它會給我以下錯誤:

TypeError: remove() missing 1 required positional argument: 'description'

我不知道在哪里可以找到上述description作為參數傳遞。 我也查看了eyed3標記的源python文件,但基於調查代碼,我似乎無法找到該參數description要傳遞的內容。

我試圖傳遞一個空字符串作為參數,但盡管腳本運行良好沒有任何錯誤,但它沒有刪除專輯封面圖像。

請幫忙。

在挖掘了一下之后, 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)
[]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM