论坛首页 招聘求职论坛

Python3.4如何读取一个文件并打印

浏览 10205 次
精华帖 (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 &lt;module&gt;
    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下写,这些错误,对于新手们来说,可能无从下手,根本不知道哪里错了,或者到底写在那个位置才合适。
论坛首页 招聘求职版

跳转论坛:
Global site tag (gtag.js) - Google Analytics