Python用来处理文本,是非常简洁方便的,散仙对Python也是处于入门阶段,今天写了个简单的小脚本来,读取文件,并打印,结果报异常了,总结如下:
第一个异常信息
"SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape"
报错的原因是:原因:文件名中的 \U 开始的字符被编译器认为是八进制。
解决的方法是在路径前面加入r标记
第二个异常信息如下:
Traceback (most recent call last):
File "D:\eclipseworkspace2yw\Python\readfile.py", line 3, in <module>
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下写,这些错误,对于新手们来说,可能无从下手,根本不知道哪里错了,或者到底写在那个位置才合适。