【问题标题】:UnicodeDecodeError: 'gbk' codec can't decode bytes for ChineseUnicodeDecodeError:“gbk”编解码器无法解码中文字节
【发布时间】:2015-10-22 21:04:03
【问题描述】:

环境: - Mac OS 优胜美地 - Python 2.7 - 我正在阅读的文件文件以txt格式保存

所以我有一个将中文文本分割成句子的脚本,下面是代码:

# coding: utf-8 

cutlist ="。!?".decode('utf-8')    
def FindToken(cutlist, char):
    if char in cutlist:
        return True
    else:
        return False


def Cut(cutlist,lines):          
    l = []         
    line = []   

    for i in lines:         
        if FindToken(cutlist,i):      
            line.append(i)         
            l.append(''.join(line))   
            line = []  =
        else:         
            line.append(i)     
    return l


for lines in file("t.txt"):    
    l = Cut(list(cutlist),list(lines.decode('gbk')))     
    for line in l:  
       if line.strip() !="":      
            li = line.strip().split()   
            for sentence in li:
                print sentence

但我收到以下错误:

有人可以就导致此错误的原因给我一些指导吗?谢谢!

【问题讨论】:

  • 您的代码看起来正确。错误消息基本上说它无法解码文件。所以看起来文件“t.txt”可能没有用gbk编码。你能用文本编辑器打开文件吗?
  • 是的,我确实可以。我还尝试在文件中包含一行中文并直接在脚本中调用它而不是单独的文件,它仍然得到相同的结果。

标签: python unicode decode splitter


【解决方案1】:

所以我将 decode 更改为 utf-8 如下:

l = Cut(list(cutlist),list(lines.decode('utf-8')))  

现在可以了。

【讨论】:

    猜你喜欢
    • 2011-09-13
    • 2016-08-03
    • 1970-01-01
    • 2013-08-20
    • 2018-02-01
    • 2012-09-10
    • 2014-04-09
    相关资源
    最近更新 更多