对python3新增的byte类型详解

yizhihongxing

下面我将为您详细讲解“对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自动化办公之群发邮件案例详解 前言 在日常工作中,我们经常需要给团队成员发一些邮件,但是逐个发送邮件会非常耗费时间,而且容易出错,因此,使用Python编写自动化脚本,实现群发邮件的功能会非常有用。 本文将详细介绍如何使用Python实现群发邮件。 步骤 第一步:安装Python包 为了发送邮件,我们需要使用Python的第三方库smtplib和…

    python 2023年6月5日
    00
  • Python反射机制实例讲解

    下面我将为您详细讲解“Python反射机制实例讲解”的完整攻略。 什么是反射机制 Python 中的反射机制指的是,在运行时获取类、对象的属性、方法等信息的能力。 通过反射,我们可以动态获取一个对象的属性或方法并执行,从而简化代码的复用和增加程序的灵活性。 反射机制的应用场景 当我们无法确定一个对象是属于哪个类时,可以使用反射机制来判断其所属类型。 当我们需…

    python 2023年6月3日
    00
  • Python中实现对list做减法操作介绍

    Python中实现对list做减法操作介绍 在Python中,列表(List)是一种常用的数据类型,它可以存储多个元素,并且这些元素可以是不同的数据。本文将详细解Python中如何实现对list做减法操作的实现方法包括使用循环和列表推导式两种方法。 方法一:使用循环 使用循环可以实现对做减法操作。例如: list1 = [1, 2, 3, , 5] list…

    python 2023年5月13日
    00
  • python 显示数组全部元素的方法

    当我们想要显示 Python 中的数组全部元素时,通常使用如下两种方法: 方法一:使用 for 循环 arr = [1, 2, 3, 4, 5] for i in arr: print(i, end=" ") 上面的代码中,我们将 arr 列表中的全部元素一个一个取出,然后使用 print() 函数将它们打印出来。这里注意,我们使用 en…

    python 2023年6月5日
    00
  • Python中字符串对齐方法介绍

    当我们在处理字符串时,可能需要将它们对齐到一定的宽度,以便更好的展示或排版。Python提供了多种简单易用的字符串对齐方法,下面就来详细讲解一下。 左对齐 ljust() ljust()方法可以将字符串左对齐,并在其右侧以空格填充到指定的宽度。它的语法如下: str.ljust(width[, fillchar]) 其中,width是指定的宽度,fillch…

    python 2023年6月5日
    00
  • Django笔记二十之手动编写migration文件

    本文首发于公众号:Hunter后端原文链接:Django笔记二十之手动编写migration文件 前面介绍过,migration 文件主要记录的是 Django 系统 model 的变化,然后通过 migrate 命令将变化适配到数据库中。 比如在某个 application 下新增了某张表,或者对某张表更改了字段,可以生成 migration 文件,然后通…

    python 2023年4月18日
    00
  • python 操作excel表格的方法

    下面我将详细讲解Python操作Excel表格的方法的完整实例教程。 一、安装必要的库 在Python中操作Excel表格需要安装openpyxl库。可以通过以下命令进行安装: pip install openpyxl 二、打开Excel文件 在Python中,可以使用openpyxl库的load_workbook方法打开Excel文件。例如,我们要打开名为…

    python 2023年5月13日
    00
  • 对json字符串与python字符串的不同之处详解

    对JSON字符串与Python字符串的不同之处详解 在本攻略中,我们将介绍JSON字符串和Python字符串之间的不同之处。JSON字符串是一种轻量级的数据交换格式,常用于Web应用程序中。Python字符串是Python编程语言中的一种数据类型,用于表示文本数据。虽然它们看起来很相似,但它们之间有一些重要的区别。 区别1:JSON字符串必须使用双引号 JS…

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