解决"UnicodeDecodeError: ‘gbk’ codec can’t decode byte 0xd0 in position 493: illegal multibyte sequen"
通过使用codecs.open 方法引入多个文件时,可能会出现报错
下面展示一些 内联代码片。
import codecs
,sys
def getContent(fullname
):
f
= codecs
.open(fullname
, 'r')
content
= f
.readline
()
f
.close
()
return content
解决方法
先debug一下发现,第十五个文件的编码方式是’cp936’ 因为本实验导入的评论文件数量较多,单个文件重要性不大,只要在读取的过程中忽略这些文件既可。
def
getContent(fullname
):
f
= codecs
.open(fullname
, 'r', encoding
='gbk', errors
='ignore')
content
= f
.readline()
f
.close()
return content
运行之后发现,有四个文件编码方式不同,问题解决
总结
至此,本情况只对于处理文件数量较多,单个文件重要性相对不大的情况。如果你想把未读取的文件再写入,可以根据他们的编码方式重新写一个方法。
或者找到编码方式不同的txt文件,然后另存为下面有选择编码方式为UTF-8。