python文件操作编码

最近在学习python文件操作时用到split()方法,用来得到文件单词数量,因此下载了《爱丽丝梦游仙境》的英文版文本文档,但是在操作的过程中出现了这个报错:
UnicodeDecodeError: 'gbk' codec can't decode byte 0x9d in position 1596: illegal multibyte sequence
GBK编解码器无法解码,非法的多字节序列。

代码如下:

filename = '11-0.txt'
with open(filename) as file_object:
 content = file_object.read()
words = content.split()
 num = len(words)
 print(num)

到这里结合之前学习HTML的经验,我明白应该是编码问题,我的文档使用的是UTF-8编码方式,但是我的编辑器默认的是GBK,导致文档内容无法解码所以读入失败。

在网上查找之后发现了两种方法
方法一:

with open(filename,'rb') as file_object:

后面加的‘rb’代表该文件以二进制打开,UTF-8的编码形式本质上就是二进制编码,因此成功打开。

方法二:

with open(filename,encoding='UTF-8') as file_object:

这种方法相对上一种更为通用,直接在打开文件的时候规定编码格式为UTF-8,如果以后遇到其他编码类型的文件只要将encoding后面的编码格式更换就可以成功。
(随着认识加深,本篇博文会不断更新)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值