今天按小甲鱼代码敲入的统计10w代码目前状态是 1.74 % 万里长征,已经迈出第一步 加油!!!
统计过程中对自己只写了245行代码质疑
try: for each_line in f: lines+=1 except UnicodeDecodeError as reason: print("错误%s"%str(reason)) pass #不可避免遇到不兼容格式的文件,这里忽略掉
修改打印报错信息,结果发现报错信息是:错误'gbk' codec can't decode byte 0xb4 in position 9: illegal multibyte sequence
错误的意思是:Unicode的解码(Decode)出现错误(Error)了,以gbk编码的方式去解码(该字符串变成Unicode),但是此处通过gbk的方式,却无法解码(can’t decode )。“illegal multibyte sequence”意思是非法的多字节序列,即没法(解码)了。
此种错误,可能是要处理的字符串本身不是gbk编码,但是却以gbk编码去解码 。比如,字符串本身是utf-8的,但是却用gbk去解码utf-8的字符串,所以结果不用说,则必然出错。
通过查阅资料,有提出在读取文本的时候加入参数‘b’,不会提示错误,通过输出读取的数据显示。
原因是打开文件不是二进制模式,汉字异常报错。
找到打开语句找到并改为:with open(file_name,'rb') as f:
成功统计得到1743行。