鱼C论坛

 找回密码
 立即注册
查看: 1261|回复: 2

[已解决]python3.4.4,文件操作read()总是出错,求大神指点

[复制链接]
发表于 2018-9-16 09:23:30 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x

代码::
f = open('e:\\abc.txt',mode = 'r',encoding = 'utf-8')
content = f.read()
print(content)
f.close()

出错提示:

line 2, in <module>
    content = f.read()
  File "C:\Python34\lib\codecs.py", line 319, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xb9 in position 2: invalid start byte
最佳答案
2018-9-16 10:27:28
本帖最后由 jackz007 于 2018-9-16 11:53 编辑

        出错原因是你要读取的文件 'e:\\abc.txt' 中含有非 utf-8 编码字符,通常的原因是,中文版 Windows 缺省编码一般是 gbk 而不是 utf-8,也就是说,你保存的 txt 文件采用的是 gbk 字符编码。导致你的程序在读取文件并按照 utf-8 进行字符解码的时候出现了非预期的问题。

        解决方法,修改这一句:

        f = open('e:\\abc.txt',mode = 'r',encoding = 'utf-8')

        改为:
     
        f = open('e:\\abc.txt',mode = 'r',encoding = 'gbk')

        另外,如果程序开头有

        #coding:utf-8

        语句,最好改为

        #coding:gbk

        如果没有,就添加,因为程序中还有文件内容显示的操作。

        当然,如果不想修改程序,那就得把 'e:\\abc.txt' 重新另存为 UTF-8 编码的文件,用记事本就可以解决问题。
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-9-16 09:29:59 | 显示全部楼层
你txt文件编码格式不是utf-8吧,打开另存,选编码格式
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-9-16 10:27:28 | 显示全部楼层    本楼为最佳答案   
本帖最后由 jackz007 于 2018-9-16 11:53 编辑

        出错原因是你要读取的文件 'e:\\abc.txt' 中含有非 utf-8 编码字符,通常的原因是,中文版 Windows 缺省编码一般是 gbk 而不是 utf-8,也就是说,你保存的 txt 文件采用的是 gbk 字符编码。导致你的程序在读取文件并按照 utf-8 进行字符解码的时候出现了非预期的问题。

        解决方法,修改这一句:

        f = open('e:\\abc.txt',mode = 'r',encoding = 'utf-8')

        改为:
     
        f = open('e:\\abc.txt',mode = 'r',encoding = 'gbk')

        另外,如果程序开头有

        #coding:utf-8

        语句,最好改为

        #coding:gbk

        如果没有,就添加,因为程序中还有文件内容显示的操作。

        当然,如果不想修改程序,那就得把 'e:\\abc.txt' 重新另存为 UTF-8 编码的文件,用记事本就可以解决问题。
        
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-24 08:13

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表