Python bytes()函数

bytes是 Python 中的一个内置类,用于表示二进制数据。bytes对象是不可变的,即一旦创建,就不能修改其中的元素。由于二进制数据通常是不可变的,因此bytes类型广泛应用于文件、网络通信等场合。

bytes类的语法如下:

bytes([source[, encoding[, errors]]])

其中:

  • source:可以是一个整数、一个包含整数的可迭代对象、一个字符串、一个 bytes 对象或一个可读取对象;
  • encoding:如果 source 是字符串,则需要指定字符编码;
  • errors:指定编码错误的处理方式,缺省值为 'strict';

bytes 常用操作

以下是一些bytes的常用操作:

  • len(bytes_object):返回 bytes_object 中的字节数;
  • bytes_object[index]:返回 bytes_object 中索引为 index 的字节;
  • bytes_object.count(sub[, start[, end]]):返回 bytes_object 中子序列 sub 的出现次数;
  • bytes_object.find(sub[, start[, end]]):查找子序列 sub 在 bytes_object 中出现的位置,如果不存在则返回 -1;
  • bytes_object.hex():返回 bytes_object 的十六进制表示;

示例代码

# 创建一个空的 bytes 对象
b = bytes()

# 创建一个 bytes 对象
b = bytes([97, 98, 99])   # b'abc'
b = bytes('abc', 'ascii') # b'abc'

# 输出 bytes 对象
print(b)          # b'abc'
print(len(b))     # 3

# 访问 bytes 对象的元素
print(b[1])       # 98

# 查找子序列
print(b.find(b'bc'))   # 1
print(b.find(b'def'))  # -1

# 将 bytes 对象转换为十六进制字符串
s = b.hex()
print(s)          # '616263'

# 将十六进制字符串转换为 bytes 对象
b = bytes.fromhex('68656c6c6f')
print(b)          # b'hello'

注意,在 Python 3 中,字符串是使用 Unicode 编码的,因此如果需要处理二进制数据,需要使用bytesbytearray类型。如果需要将二进制数据转换为字符串,可以使用bytes.decode()方法,指定相应的字符编码。例如,b.decode('ascii')将字节串 b 解码为 ASCII 编码的字符串。

原创内容,如需转载,请注明出处;

本文地址: https://www.perfcode.com/python-built-in-functions/python-bytes.html

分类: 计算机技术
推荐阅读:
将PySide6升级到最新版本 由于PySide6还在不断完善阶段,每隔一段时间我们就需要将PySide6升级到最新版本以使用更完善的功能;不论在Windows、Linux、还是macOS系统下,都只需要运行以下命令即可完成升级:
Rust最新版安装教程 首先,通过 Rust 官方网站获取最新版的安装包;根据你的系统类型,选择下载32位或64位的rustup;这里需要提醒的是,rustup只是rust的一个配置安装工具,它需要联网运行;
Python 实现哈希表 哈希表是一种数据结构,其中数据元素的地址或索引值是从哈希函数生成的。在Python中,Dictionary数据类型就是哈希表的实现。
C语言检查矩阵是否为稀疏矩阵 在矩阵中,若数值为0的元素数目远远多于非0元素的数目,并且非0元素分布没有规律时,则称该矩阵为稀疏矩阵;
Python dir()函数 在Python中,dir()函数是一个内置函数,用于列出指定对象的属性和方法。如果没有指定对象,则默认使用当前作用域中的所有对象。dir()函数返回一个字符串列表,包含指定对象的所有属性和方法名称。
arpspoof未找到命令解决方法 arpspoof 是一款进行arp欺骗的工具,攻击者通过毒化受害者arp缓存,将网关mac替换为攻击者mac,然后攻击者可截获受害者发送和收到的数据包,可获取受害者账户、密码等相关敏感信息。