Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)

yizhihongxing

Python 字节流、字符串、十六进制转换实例

在 Python 中,我们经常需要将字节流、字符串和十六进制之间相互转换,这在网络通信和加密算法中特别常见。Python 内置模块 binasciibytes 提供了相应的函数,帮助我们完成这些转换。

bytes 和 str 之间的转换

Python 3 中的字符串是 Unicode 编码,而不是像 Python 2 那样的 ASCII 编码。所以,我们需要将字符串转换为 bytes 才能进行网络通信或者进行加密算法。如果我们想将字节流转换为字符串,则需要将字节流转换为 ASCII 码或其它字符集来实现。

将字符串转换为 bytes

我们可以通过 bytes() 或者 str.encode() 函数将字符串转换成 bytes。下面是两个示例:

# 使用 bytes() 函数将字符串转换为 bytes
s = "hello world"
b = bytes(s, encoding="utf8")
print(type(b))  # <class 'bytes'>
print(b)        # b'hello world'

# 使用 str.encode() 函数将字符串转换为 bytes
s = "hello world"
b = s.encode("utf8")
print(type(b))  # <class 'bytes'>
print(b)        # b'hello world'

在上面的代码中,我们首先将字符串 "hello world" 转换成了字节流 b'hello world',并打印输出了它们的类型和值。

将 bytes 转换为字符串

我们可以通过 str() 或者 bytes.decode() 函数将 bytes 转换成字符串。下面是两个示例:

# 使用 str() 函数将 bytes 转换成字符串
b = b"hello world"
s = str(b, encoding="utf8")
print(type(s))  # <class 'str'>
print(s)        # hello world

# 使用 bytes.decode() 函数将 bytes 转换成字符串
b = b"hello world"
s = b.decode("utf8")
print(type(s))  # <class 'str'>
print(s)        # hello world

在上面的代码中,我们首先将 bytes 对象 b'hello world' 转换成了字符串 "hello world",并打印输出了它们的类型和值。

字节流和十六进制的转换

将字节流转换为十六进制

我们可以通过 binascii.hexlify() 函数将字节流转换成十六进制表示。下面是一个示例:

import binascii

# 将字节流 b'hello world' 转换成十六进制
b = b"hello world"
hex_data = binascii.hexlify(b)
print(type(hex_data))  # <class 'bytes'>
print(hex_data)        # b'68656c6c6f20776f726c64'

在上面的代码中,我们使用 Python 内置模块 binascii 中的 hexlify() 函数将字节流 b'hello world' 转换为了十六进制表示的 bytes 对象 b'68656c6c6f20776f726c64'

将十六进制转换为字节流

我们可以通过 binascii.unhexlify() 函数将 十六进制表示 转换为字节流的形式。下面是一个示例:

import binascii

# 将十六进制字符串 '68656c6c6f20776f726c64' 转换为字节流
hex_data = b"68656c6c6f20776f726c64"
b = binascii.unhexlify(hex_data)
print(type(b))  # <class 'bytes'>
print(b)        # b'hello world'

在上面的代码中,我们使用 Python 内置模块 binascii 中的 unhexlify() 函数将十六进制的 bytes 对象 b'68656c6c6f20776f726c64' 转换为了字节流 b'hello world'

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 字节流,字符串,十六进制相互转换实例(binascii,bytes) - Python技术站

(1)
上一篇 2023年6月5日
下一篇 2023年6月5日

相关文章

  • pip报错“ValueError: invalid literal for int() with base 10: ‘3.9’”怎么处理?

    当使用 pip 命令时,可能会遇到 “ValueError: invalid literal for int() with base 10: ‘3.9’” 错误。这个错误通常是由于您在使用 pip 命令时输入了无效的参数或选项导致的。以下是详细讲解 pip 报错 “ValueError: invalid literal for int() with base…

    python 2023年5月4日
    00
  • python定时检测无响应进程并重启的实例代码

    下面是关于“python定时检测无响应进程并重启的实例代码”的完整攻略和两个示例。 检测无响应进程并重启的思路 首先,我们可以使用Python的subprocess模块创建并启动子进程,然后监听其运行状态。如果进程在规定的时间内未给出响应,我们可以通过os.kill()方法向该进程发送一个信号,使其停止运行。接着,我们可以使用相同的方式重新启动进程且在该进程…

    python 2023年5月20日
    00
  • Python入门篇之数字

    Python入门篇之数字 Python中的数字类型包括整数、浮点数和复数。本文将介绍Python中数字类型的基本操作和常用函数。 整数 Python中的整数类型是int,可以表示任意大小的整数。整数可以使用十进制、二进制、八进制和十六进制表示。 # 十进制 x = 10 print(x) # 二进制 y = 0b1010 print(y) # 八进制 z =…

    python 2023年5月13日
    00
  • Python中的numpy.diff()函数

    本文将为你详细讲解Python中的numpy.diff()函数。 一、numpy.diff()函数概述 numpy.diff()函数是numpy库中的一个函数,用于计算数组中相邻元素的差值。具体来说,它可以计算一维、多维数组中相邻元素的差值,并返回一个差异值数组。这个函数在数据处理和信号处理中经常使用。 二、numpy.diff()函数的语法 numpy.d…

    python-answer 2023年3月25日
    00
  • python利用Appium实现自动控制移动设备并提取数据功能

    Python利用Appium实现自动控制移动设备并提取数据功能 什么是Appium? Appium 是一个开源的自动化测试框架,用于测试移动应用程序,可以支持多种移动操作系统和编程语言,包括 iOS、Android、Windows等系统和Java、Python等编程语言。 实现自动化控制移动设备需要准备的工具 安装 Appium Server 安装 Pyth…

    python 2023年6月5日
    00
  • Django结合ajax进行页面实时更新的例子

    首先我们需要了解什么是Django和ajax。 Django是一个高效、可扩展、开源的Web框架,它使用Python语言编写,可以帮助开发人员快速构建复杂的Web应用程序。而ajax则是一种用于交互式Web应用程序中的技术,可以帮助我们在不刷新整个页面的情况下更新部分页面内容。 基于这两个技术,我们可以使用Django结合ajax进行页面的实时更新。下面详细…

    python 2023年6月3日
    00
  • Python实现五子棋人机对战 和人人对战

    Python实现五子棋人机对战和人人对战的步骤可以分为以下几个步骤: 安装必要的库 这个项目需要使用到以下库: Pygame: 用于创建游戏窗口、音乐等功能 Numpy: 用于科学计算、数组操作等功能 如果没有安装过这些库,可以通过以下命令来安装: pip install pygame numpy 编写游戏逻辑代码 五子棋游戏的逻辑比较简单,可以使用一个二维…

    python 2023年5月23日
    00
  • Python爬取网站图片并保存的实现示例

    让我们来详细讲解一下 Python 爬取网站图片并保存的实现攻略。 一、思路 爬取网站图片并保存的思路大概分为以下几个步骤: 分析目标网站的 HTML 结构,找到图片的所在标签和属性; 获取网站内容; 解析网站内容,提取出图片的 URL; 下载图片到本地; 保存图片。 二、代码实现 1. 简单示例 下面是 Python 简单爬取图片的代码: import r…

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