1

我有一个问题,我有一个歌曲播放列表,使用codecs.open(filename, encoding='utf8'). 播放列表文件中的每两行在第一行包含元数据,在第二行包含曲目文件名。

文件名是 unicode 格式,我遇到了一些由于标记错误或字符集不匹配而在名称中包含 \x85 字符的曲目标题。所以会有一个类似的元数据行'Title title \x85 title - artist,并且在使用 readline 读取文件时会错误地换行。

4

1 回答 1

0

我解决了这个问题。而不是调用file.readline,我将有一个包装 readline 的函数。最初我逐个字符地处理它,这很慢,但后来我过早地忘记了 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 回答