在python中读取的UTF-8文件将在字符\ x85处换行

时间:2013-04-26 00:58:34

标签: python file readline

我遇到了一个问题,即我在使用codecs.open(filename, encoding='utf8')阅读时没有正确换行的歌曲播放列表。播放列表文件中的每两行包含第一行中的元数据,第二行中包含曲目文件名。

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

1 个答案:

答案 0 :(得分: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