Привет всем!
Пытаюсь разобраться с mutagen api, на предмет написания нескольких скриптов. Например, хочу написать скрипт, который прочитает
id3v1 cp-1251 тэги из файла, переведёт их в транслит и сохранит обратно в файл, в id3v1, в кодировке latin1. Если интересно, зачем это нужно - радиодиск в машине, с поддержкой mp3, который читает только id3v1 тэги.
Теперь о самой проблеме. Написал вот такое творение:
Код: Выделить всё
import os
import sys
import locale
from mutagen.id3 import ID3, ParseID3v1
enc = locale.getpreferredencoding()
myfile = file("/home/dima/1.mp3", 'rb')
myfile.seek(-128, 2)
frames = ParseID3v1(myfile.read(128))
if frames is not None:
for frame in frames.values():
print frame.text[0].encode(enc, 'replace')
else:
print 'no id3v1 frames'
В результате получаю на экран вопросительные знаки.

Немного о системе:
Archlinux current
locale en_US.utf8
KDE 3.5.6
konsole
шрифты: terminus, courier new (никакие не работают)
Пробовал убрать encode из скрипта и запустить его таким образом:
Результат такой же.
Документация на сайте mutagen'a скудная, помимо неё в гугле ничего полезного нет. 'pydoc mutagen' не помогает. Делаю всё по примерам внутри кода mutagen.
За кривой код просьба сильно не бить, я на питоне до этого ничего не писал
Какие будет предложения, советы? Как добиться вывода содержимого id3v1 в правильной кодировке? mid3iconv и mid3v2 не предлагать, они не умеют делать того, что мне нужно, я проверял.
Заранее спасибо за помощь! Если результаты моей работы будут удовлетворительными, обязательно выложу здесь.
