对python3新增的byte类型详解

下面我将为您详细讲解“对python3新增的byte类型详解”的攻略。

什么是bytes类型

byte是python3中的内置类型,表示一个不可变的字节序列(bytes,字节串)。在python3之前,需要使用str类型表示字节码,但是由于str类型底层采用的是unicode编码,所以在处理二进制数据时会有一些限制,因此python3新增byte类型,专门用于处理字节数据。

如何创建bytes类型

使用bytes()函数可以创建一个空的bytes类型:

b = bytes()
print(b)   # b''

使用字符串可以创建一个bytes类型:

s = "hello world"
b = bytes(s.encode('utf-8'))
print(b)   # b'hello world'

还可以使用字节数组创建一个bytes类型:

arr = [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]
b = bytes(arr)
print(b)   # b'Hello world'

bytes类型的常见操作

bytes类型的切片和索引

字节串也可以进行切片和索引操作,与字符串类似:

b = b'Hello world'
print(b[0])      # 72
print(b[:5])     # b'Hello'
print(b[6:])     # b'world'

bytes类型的拼接

使用+符号可以将两个bytes类型拼接在一起:

b1 = b'Hello'
b2 = b' world'
b3 = b1 + b2
print(b3)   # b'Hello world'

bytes类型转换为字节数组

使用list函数可以将bytes类型转换为字节数组:

b = b'Hello world'
arr = list(b)
print(arr)   # [72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100]

bytes类型支持的方法

bytes类型支持的方法与字符串基本相同,例如:

  • len: 返回字节串的长度
  • count: 返回指定字节序列在字节串中出现的次数
  • decode: 将字节串解码为一个编码格式的字符串
  • endswith: 判断字节串是否以指定的后缀结束
  • join: 按照指定的分隔符将一个可迭代对象中的字节串拼接为一个整体字节串
  • replace: 用一个新的字节序列替换字节串中的指定字节序列
  • split: 将字节串按照指定的分隔符分割成一个列表

示例1

下面是一个读取二进制文件的示例,利用bytes类型来存储读取的二进制数据:

with open('test.bin', 'rb') as f:
    data = f.read()
    print(type(data))   # <class 'bytes'>

示例2

下面是一个使用socket接收二进制数据的示例,利用bytes类型来存储接收的数据:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('127.0.0.1', 8888))
data = sock.recv(1024)
print(type(data))   # <class 'bytes'>

以上就是“对python3新增的byte类型详解”的攻略,希望对您有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:对python3新增的byte类型详解 - Python技术站

(0)
上一篇 2023年5月19日
下一篇 2023年5月19日

相关文章

  • Python实现字符串与数组相互转换功能示例

    下面是Python实现字符串与数组相互转换功能的完整攻略。 1. 字符串转换为数组 将字符串转换为数组可以使用Python内置的split()方法。split()方法接受一个参数,用于指定以哪个字符为分隔符将字符串分割成多个子字符串,然后转换成数组。以下示例演示了如何将输入的字符串转换为数组并打印输出: input_str = "Hello,Wor…

    python 2023年6月5日
    00
  • python 进程间数据共享multiProcess.Manger实现解析

    下面我将详细讲解“Python进程间数据共享multiProcess.Manager实现解析”的完整攻略。 什么是进程间数据共享? 在并发编程中,进程间数据的共享是必不可少的一个环节。因为不同进程之间是互相独立的,如果不进行数据共享,则各个进程之间无法进行数据交互,从而无法实现并发编程的效果。 Python中的进程间数据共享 在Python中,可以使用mul…

    python 2023年5月13日
    00
  • python利用socketserver实现并发套接字功能

    下面是“python利用socketserver实现并发套接字功能”的完整攻略。 什么是socketserver socketserver 是 Python 内置模块,它提供了一系列网络服务器的支持库。使用 socketserver,可以很容易地编写出高性能、高可靠性的并发 TCP 或 UDP 服务器。 socketserver 模块中的类 TCPServe…

    python 2023年6月3日
    00
  • Python入门教程(三十)Python的PIP

    Python入门教程(三十)Python的PIP 什么是PIP PIP是Python包管理器,它可以用来安装、升级和移除Python包。PIP是Python社区广泛使用的包管理工具,它使开发人员能够方便地查找和安装第三方包,这些包是Python项目所必需的。 安装PIP 很多Python发行版都已经内置了PIP,但有些发行版可能需要手动安装。在Linux上使…

    python 2023年5月30日
    00
  • python机器学习实战之K均值聚类

    Python机器学习实战之K均值聚类 基本介绍 K均值聚类是一种比较常用的聚类方法,其基本思想就是把所有数据分成K个类别,使得同一类别内的数据相似度较高,而不同类别的数据相似度较低。 算法流程 初始化K个聚类中心 将所有数据点分别归属于离其最近的聚类中心所代表的聚类 重新计算每个聚类的聚类中心 重复步骤2和步骤3,直到聚类中心不再发生变化 代码实现 下面是一…

    python 2023年6月6日
    00
  • python 实现查询Neo4j多节点的多层关系

    以下是“python实现查询Neo4j多节点的多层关系”的完整攻略。 步骤一:安装Neo4j与python的驱动库 Neo4j是一款开源图数据库,我们需要先安装它。安装教程可以参见官网:https://neo4j.com/docs/operations-manual/current/installation/。 其次,我们要为python安装neo4j的驱动…

    python 2023年5月14日
    00
  • python 人工智能算法之随机森林流程详解

    Python人工智能算法之随机森林流程详解 随机森林是一种常用的机器学习算法,它可以用于分类和回归问题。本文将详细介绍Python中随机森林的流程,包括数据预处理、模型训练和模型评估等步骤。 1. 数据预处理 在使用随机森林算法之前,需要对数据进行预处理。具体来说,需要进行以下步骤: 1.1 数据清洗 数据清洗是指对数据进行去重、缺失值处理、异常值处理等操作…

    python 2023年5月14日
    00
  • python list格式数据excel导出方法

    以下是“Python list格式数据Excel导出方法”的完整攻略。 1. 使用pandas库 pandas库是Python中常用的数据处理库,可以用于读取、处理和导出各种数据格式包括Excel。示例如下: import pandas as pd my_list = [[‘apple’, 1], [‘banana’, 2], [‘cherry’, 3 [‘…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部