1

を使用して読み取ったときに正しく改行されない曲のプレイリストがあるという問題がありましたcodecs.open(filename, encoding='utf8')。プレイリスト ファイルの 2 行ごとに、1 行目にメタデータが含まれ、2 行目にトラック ファイル名が含まれます。

ファイル名は Unicode で、不適切なタグ付けまたは文字セットの不一致が原因で、名前に \x85 文字が含まれるトラック タイトルに遭遇しました。そのため、 のようなメタデータ行があり'Title title \x85 title - artist、readline を使用してファイルを読み取ると、誤って改行されます。

4

1 に答える 1

0

問題を解決しました。を呼び出す代わりに、file.readlinereadline をラップする関数を用意します。もともと私はそれを1文字ずつ持っていたので遅かったのですが、readlineの中断を時期尚早に忘れてしまい、さらに呼び出すことで正しい行に構築することができました。

def getline(_file):
    ln = ''
    while True:
        _ln = _file.readline()
        ln += _ln
        if not _ln:
            break;
        if _ln[-1] == '\n':
            break
    return ln
于 2013-04-26T00:58:34.210 に答える