Tôi đang cố cập nhật siêu dữ liệu của một loạt tệp mp3 bằng Python và API EyeD3 của nó.Python + eyeD3: không thể lưu ngày thành siêu dữ liệu mp3
Nó trông khá đơn giản, mã Tôi đang sử dụng vẻ bề ngoài như sau:
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()
gì xảy ra là: Mã thực hiện âm thầm (không có lỗi hoặc ngoại lệ), danh hiệu được thiết lập một cách chính xác, cập nhật là không bộ trong tệp đích. Nó vẫn trống hoặc được đặt thành giá trị trước đó (đã kiểm tra cả hai trường hợp).
trợ giúp cho chức năng setDate không particulary gây cười:
setDate(self, year, month=None, dayOfMonth=None, hour=None, minute=None, second=None, fid=None) unbound eyeD3.tag.Tag method
... nhưng nói với tôi rằng cuộc gọi của tôi nên ok. Bất kỳ ý tưởng gì đang xảy ra ở đây?
Nhìn lướt qua mã nguồn, tôi không thấy bất cứ điều gì rõ ràng là sai. –
Phát hiện ra rằng dòng lệnh eyeD3 thực hiện chính xác như cũ: không thay đổi ngày tháng, nhưng cũng không báo cáo bất kỳ lỗi nào. Có thời hạn đến, tôi sử dụng Mutagen cho mục đích này. Tôi đoán chúng tôi chỉ có một lỗi trong eyeD3 một nơi nào đó. – zencodism