Bytes类型
硬盘只能存储2进制的数据,所以把我数据都转化为2进制才行
数据往硬盘上面存,就要以相应的编码--》转为2进制
eg.
文字--》utf-8/gbk--》2进制
图片--》jpg/png--》2进制
音乐--》mp3/wav--》2进制
视频--》mp4/mov--》2进制
1 s = "小猿圈“ 2 s.encode("utf-8") #以utf-8编码 3 b'\xe5\xb0\x8f\xe7\x8c\xbf\xe5\x9c\x88' #b开头的都代表是bytes类型,是以16进制来显示的,2个16进制代表一个字节。 utf-8是3个字节代表一个中文,所以以上正好是9个字节
想要自行改变文件类型的编码,只需要
1 f = open(file="encode_test",encoding="gbk",mode="w") 2 或者 3 f = open("byte.txt","w",encoding="gbk")
以二进制模式操作文件
1 当然,在打开文件时如果你不想让open这个对象帮你自动编码,你也可以直接往文件里存入bytes数据。 2 f = open("bytes.txt","wb") #以2进制模式打开文件 3 s = "进击的小吴”.encoding(utf-8) #自行用utf-8编码 4 print(s) 5 f.write(s) 这里相当于把之前用utf-8编码的进击的小吴写进文档里里面了,相当于直接存入了bytes数据 6 f.close()
#以下是print(s)的输出
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'(举个例子,我的应该有30个16进制数,
文件中相当于把这个东西填充进去了)
二进制模式打开文件有
1. wb 二进制创建
2. rb 二进制读
3. ab 二进制追加