for line in open(r"C:\Users\qindongliang\Desktop\临时目录\test.log"):
UnicodeDecodeError: 'gbk' codec can't decode byte 0xad in position 21: illegal multibyte sequence
原因分析:
编码处理不正确
解决办法:
在open方法的构造里,指定字符编码为UTF即可。
我的读取文件的编码也是UTF-8的,内容如下:
lucene,solr,nutch
中国,外国,美国
我们都是中国热,载入
使用Python读取,并循环打印的代码如下: 代码示例:
#Python的注释
for line in open(r"C:\Users\qindongliang\Desktop\临时目录\test.log",encoding='utf-8'):
words=line.split(",")
print("外层循环:"+line)
for w in words:
print("内层循环:"+w)
输出的内容:
外层循环:lucene,solr,nutch
内层循环:lucene
内层循环:solr
内层循环:nutch
外层循环:中国,外国,美国
内层循环:中国
内层循环:外国
内层循环:美国
外层循环:我们都是中国热,载入
内层循环:我们都是中国热
内层循环:载入
总结:
写python代码时,注意缩进,在eclipse里面编码还好,编译器可以自动提示。
如果直接在linux下写,这些错误,对于新手们来说,可能无从下手,会不知道错误在何处,以及如何处理缩进位置,切记。 dule>