• 16.Byets类型



    Byets类型
    数据存储硬盘,硬盘只能存储二进制
    二进制--十进制--ascii/gkb/utf8/ unicode
    数据存硬盘,就要以响应编码utf-8/gbk转成二进制
    文字 utf-8--二进制
    s="曹娜" #在py3中是unicode格式,在py2是ascii码格式,现在是存在内存中,往硬盘存二进制,要编码成gbk/utf8的二进制,编码语法encode,就是把unicode的字符,以gbk/utf-8编码成二进制
    print(s.encode("utf-8"))
    打印结果-----》b'xe6x9bxb9xe5xa8x9c'---utf-8 1个字符3个字节
    bytes类型,3个字节一个中文字符,2个中文,就是6个字节,所以是6个字节--》曹娜--其实就是二进制,不过是以十六进制形式表现出来
    print(s.encode("gbk"))
    b'xb2xdcxc4xc8' -----gbk,1个字符2个字节
    bytes以十六进制形式表示,2个十六进制数构成1个byte,以b""来表示,字节串
    在py3,文件默认编码utf-8
    f=open("test2.txt","w",encoding="gbk")# 自己指定编码,默认utf-8,指定后按照指定编码存储,但是pycharm是以utf-8读取的,需要修改下
    f.write("你好啊")
    f.close()


    f=open("test.txt","w")
    f.write("你好啊".encode("utf-8"))
    f.close()
    #报错 ----》》》TypeError: write() argument must be str, not bytes,因为write的内容,已经是编码后的二进制,所以,要以"wb"写入,以告知系统,我要以2进制形式写入。二进制模式,不要在指定encoding
    w模式是存字符串,后面要encoding="编码格式"
    wb模式是二进制格式写入,不要encoding="编码格式"

    f=open("test1.txt","r")
    print(f.readline())
    f.close()
    字符串形式读取
    f=open("test1.txt","rb")
    print(f.readline())
    f.close()
    bytes类型读取

    2个应用场景
    字符存硬盘字符要转换bytes
    网络传输字符要转换bytes

    图片 jpg--二进制
    音乐 mp3--二进制
    视频 mp4--二进制

  • 相关阅读:
    poj 2674 Linear world
    poj 3185 The Water Bowls
    The Largest Clique (uva11324)
    Proving Equivalences (LA 4287)
    强联通分量( HihoCoder 1185 )
    求点双联通分量(HihoCoder
    求桥,割点(HihoCoder
    欧拉回路
    uva10054
    表达式树(公共表达式消除 uva 12219)
  • 原文地址:https://www.cnblogs.com/xh716/p/11564092.html
Copyright © 2020-2023  润新知