我正在尝试编写脚本以使用Python和eyeD3清理mp3文件名,但是当我尝试使用以下脚本加载mp3文件时,我收到“警告:eyed3.mp3.headers:Lame标签CRC检查失败”的警告

import string
import os
import eyed3

count = 0

for root, dirs, filenames in os.walk('path'):
    for song in filenames:
        audiofile = eyed3.load(song)

因此,我无法重命名库中的大多数文件。在此主题上有任何经验或要使用的其他库吗?

最佳答案

我发现第一个周转方法可检测到可悲地发送到stdout的eye3d“错误”:
实际上,eyed3并没有看上去那么脏,这是因为它的错误,甚至是log.warnings,
所以我以这种方式查看日志时遇到了这些错误:
-在eye3d调用之前,我将日志重定向到stringIO
-在eye3d调用之后,我检查此stringIO是否仍然为空(或不是)

样例代码:

import logging
import io
import eyed3

log_stream = io.StringIO()
logging.basicConfig(stream=log_stream, level=logging.INFO)
audiofile = eyed3.load('myfullfilename')
llog = log_stream.getvalue()
if llog:
    # deal here with the error message which in llog
    # and then purge the log_stream to reuse it for next eye3d call
    log_stream.truncate(0)
# all this code can be improved : enclose it in a try..catch, etc.

关于python - Python-eyeD3 Lame标签CRC检查失败,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/36636063/

10-09 07:51