Bytes类型
2019-09-07 14:33
615 查看
Bytes类型
一、定义
bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型。
b'\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88' ''' b开头的都代表是bytes类型,是以16进制来显示的,2个16进制代表一个字节。 utf-8是3个字节代表一个中文,所以以上正好是9个字节 '''
二、Bytes类型的作用
计算机只能存储2进制,要想将字符、图片、视频、音乐等存在硬盘上,也必须以正确的方式编码成2进制后再存储。
对于文字,我们可以用gbk编码,也可以用utf-8、ASCII编码。
对于图片,必须编码成PNG,JPEG等格式。
对于音乐,必须编码成MP3,WAV等。
在python中,数据转成2进制后不是直接以010101的形式表示的,而是用一种叫bytes(字节)的类型来表示的。字符串转成bytes后长成这个样子:
s = '小明' a = s.encode('utf-8') print(a)
在python中,字符串必须编码成bytes后才能存到硬盘上,但是为什么之前学的文件操作并没有把字符串编码后再存储?那是因为python默认帮你干了这个事了,如python3中文件存储的默认编码是utf-8。
当然,你可以自行改变文件的默认编码。
f = open(file="encode_test",encoding="gbk",mode="w")
这样,你写入的数据就是按gbk编码的了。
三、以二进制模式操作文件
当然,在打开文件时如果你不想让open这个对象帮你自动编码,你也可以直接往文件里存入bytes数据。
f = open(file="encode_test",mode="wb") # wb以2进制模式打开文件 s = "自学编程,谁不上小猿圈".encode("utf-8") # 自行编码 print(s ) f.write(s) f.close()
输出结果:
b'\xe8\x87\xaa\xe5\xad\xa6\xe7\xbc\x96\xe7\xa8\x8b\xef\xbc\x8c\xe8\xb0\x81\xe4\xb8\x8d\xe4\xb8\x8a\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88'
以2进制模式打开文件的方式有:
- wb 二进制创建
- rb 二进制读
- ab 二进制追加
相关文章推荐
- 文件管理,包括文件打开操作,读写的12种方式的介绍,编码方式简介,文件读写的种种操作以及关闭操作和bytes类型的简单介绍
- Python 标准数据类型:Bytes
- 对python的bytes类型数据split分割切片方法
- Oracle 12c 启用VARCHAR2, NVARCHAR2, and RAW类型支持32K(4,000 to 32,767 bytes)
- bytes数据类型和字符串的编码解码,三元运算,进制互换
- python学航_bytes类型
- Python中的bytes,str,int等类型转换
- Python日记4--数据类型,int与bytes
- value of too large for field of 4 bytes at 错误类型
- 浅析Python3中的bytes和str类型
- Python笔记——浅析Python3中的bytes和str类型
- python2- 编码类型问题解决大全 codec can't decode bytes in position 398-399: unexpected end of data
- 各种类型to array of bytes
- C标准类型的长度bytes
- Indy10 IdudpServer获取字符串数据Read事件,TIdBytes类型的使用,支持中文
- [django]用requests从url获取图片(数据类型是bytes)后如何在template中显示出来
- bytes类型转字符串 字典字符串之间的转换 eval 函数
- 学习笔记(1):show_bytes:打印任意类型的十六进制表示
- python基础---字符串类型str和字节类型bytes相互转化
- Python3中内置类型bytes和str用法及byte和string之间各种编码转换