python3初体验の字符串和编码

发布于 2018-07-06  23 次阅读


最近开始搞python3了,同样也是自学

今天我拿起我以前的抓小妹妹的py开始运行的时候竟然发现不能正常保存,关键部分如下:

一直写不进图片啊卧槽。。。刚开始以为是接口访问速度问题,后来换了一个国内的接口还是不行,输出接口的HTTP状态也是200(因为我刚开始没觉得读写文件这里有问题,以前python2都是这么写的,所以就没注意,可能python2也存在这个问题,不过我没遇到。)

直到我把try....except去掉了,才发现是读写文件出现的问题,异常如下:

write()操作的类型必须为str,不能为bytes(数字流)


知识点:

在python3中对编码要求比python2严格

再来试试我们的小姐姐图片

解决方案:

所以我们如果获取的文件流可以decode为utf-8编码的话,直接加上result.decode('utf-8')即可,但是像图片等媒体文件一般不能完全decode为utf-8。

在写入媒体文件时直接把文件打开为数据流即可

1.f=open('ourpast.cn.jpg','wb')

f.close()

2.with open('ourpast.cn.jpg','wb') as f:

 

心得:python作为一种比较'美观'的语言,在python3中对文件编码严格要求也不失为python的态度。

Comments


请相信,你的指尖拥有改变世界的力量