2015-10-22 5 views
0

среды: - Mac OS Yosemite - Python 2.7 - Файл-файл, который я читаю сохраняется в текстовом форматеUnicodeDecodeError: «GBK» кодек не может декодировать байт для китайского

Так у меня есть сценарий для сегмента китайского текста на предложения и ниже приведен код:

# 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 

Но я получаю следующее сообщение об ошибке: enter image description here

Может кто-то дать мне какое-то руководство по поводу того, что вызывает эту ошибку? Благодаря!

+2

Ваш код выглядит правильно. В сообщении об ошибке в основном говорится, что он не может декодировать файл. Таким образом, файл «t.txt» не может быть закодирован в gbk. Можете ли вы открыть файл с помощью текстового редактора? – azalea

+0

Да, я на самом деле способен. Я также попытался включить в файл строку китайского языка и назвал ее непосредственно в скрипте вместо отдельного файла и все равно получил тот же результат. – YAL

ответ

0

Так что я изменил декодирование в UTF-8 в следующей редакции:

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

И он работает сейчас.

Смежные вопросы