zoukankan      html  css  js  c++  java
  • Bytes类型

    Bytes类型

    一、定义

    bytes类型是指一堆字节的集合,在python中以b开头的字符串都是bytes类型。

    b'xe5xb0x8fxe7x8cxbfxe5x9cx88' 
    '''
    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'xe8x87xaaxe5xadxa6xe7xbcx96xe7xa8x8bxefxbcx8cxe8xb0x81xe4xb8x8dxe4xb8x8axe5xb0x8fxe7x8cxbfxe5x9cx88'
    

    以2进制模式打开文件的方式有:

    • wb 二进制创建
    • rb 二进制读
    • ab 二进制追加
  • 相关阅读:
    辅助工具链接
    参考资料链接
    oracle sql 查询前十条数据
    oracle sql 按照汉字规则排序
    oracle sql 修改timestamp数据
    eclipse闪退
    js 数组Array
    面试题:树的子结构
    面试题:二叉树中和为某一路径
    面试题:二叉搜索树的后序遍历
  • 原文地址:https://www.cnblogs.com/Kwan-C/p/11480678.html
Copyright © 2011-2022 走看看