浏览 10205 次
锁定老帖子 主题:Python3.4如何读取一个文件并打印
精华帖 (0) :: 良好帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2014-04-23
Python用来处理文本,是非常简洁方便的,散仙对Python也是处于入门阶段,今天写了个简单的小脚本来,读取文件,并打印,结果报异常了,总结如下:
第一个异常信息 <pre name="code" class="python">"SyntaxError: (unicode error) 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape"</pre> 报错的原因是:原因:文件名中的 \U 开始的字符被编译器认为是八进制。 解决的方法是在路径前面加入r标记 第二个异常信息如下: <pre name="code" class="python">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</pre> 原因是因为,编码处理不正确,解决办法,在open方法的构造里,指定字符编码为UTF即可。 散仙读取文件的编码也是UTF-8的,内容如下: <pre name="code" class="java">lucene,solr,nutch 中国,外国,美国 我们都是中国热,载入</pre> 使用Python读取,并循环打印的代码如下: <pre name="code" class="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) </pre> 输出的内容如下: <pre name="code" class="java">外层循环:lucene,solr,nutch 内层循环:lucene 内层循环:solr 内层循环:nutch 外层循环:中国,外国,美国 内层循环:中国 内层循环:外国 内层循环:美国 外层循环:我们都是中国热,载入 内层循环:我们都是中国热 内层循环:载入 </pre> 总结:写python代码时,注意缩进,在eclipse里面编码还好,编译器可以自动提示,如果直接在linux下写,这些错误,对于新手们来说,可能无从下手,根本不知道哪里错了,或者到底写在那个位置才合适。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |