在 Python 中转换字节为十六进制
本教程将介绍如何在 Python 中把字节转换成十六进制。
Python 中的字节数据类型是一个字节序列,它可以作为一个变量存储在磁盘上,然后可以对其进行编码和解码。它们像字符串一样被声明,但前缀是字符 b
。字节接受特殊的 Unicode 字符,前缀为\x
。
Python 中初始化字节文字
我们会给出一个字节文字的例子,声明一个带有特殊字符的字符串,并使用函数 encode('utf-8')
将其转换为字节文字。
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print(byte_var)
输出:
b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
encode()
的输出结果将是一个以字符 b
为前缀的字节文字和特殊字符转换为 Unicode 符号。
现在一个字节的声明已经完成,让我们继续将一个字节转换成十六进制。
在 Python 中使用 hex()
方法将一个字节转换成十六进制
从 Python 3.5 引入的 hex()
方法将其转换为十六进制字符串。
在这种情况下,参数将是要转换为十六进制的字节数据类型。
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print('Byte variable: ', byte_var)
print('Hexadecimal: ', byte_var.hex())
输出:
Byte variable: b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal: ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274
在 Python 中使用 binascii
模块将一个字节转换为十六进制
Python binascii
模块包含了二进制和 ASCII 操作的高效实用函数。
在这个模块中,有一个函数 hexlify()
,它返回给定参数的十六进制值,即二进制值。
在这个例子中,参数将是要转换为十六进制的字节变量。
import binascii
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print('Byte variable: ', byte_var)
print('Hexadecimal: ', binascii.hexlify(byte_var))
输出:
Byte variable: b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal: b'ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274'
请注意,hexlify()
的返回值是一个字节文字,与 hex()
不同,后者返回一个转换后的字符串。
如果你想把结果转换成字符串,使用函数 decode('utf-8')
。
import binascii
byte_var = 'γιαούρτι - yogurt'.encode('utf-8')
print('Byte variable: ', byte_var)
print('Hexadecimal: ', '' + binascii.hexlify(byte_var).decode('utf-8'))
输出:
Byte variable: b'\xce\xb3\xce\xb9\xce\xb1\xce\xbf\xcf\x8d\xcf\x81\xcf\x84\xce\xb9 - yogurt'
Hexadecimal: ceb3ceb9ceb1cebfcf8dcf81cf84ceb9202d20796f67757274
现在十六进制的结果已经从一个字节文字转换成了一个字符串。
综上所述,我们已经介绍了在 Python 中把一个字节转换成十六进制的 2 种方法。最简单的方法是使用内置的函数 hex()
将一个字节文字转换为十六进制。另外,也可以使用 binascii
模块中的 hexlify()
函数来产生同样的输出。
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedIn相关文章 - Python Bytes
- Python 中如何将字节 bytes 转换为整数 int
- 如何将整型 int 转换为字节 bytes
- 如何在 Python 中把整型转换为二进制
- 如何在 Python 2 和 Python 3 中将字节转换为字符串
- 如何在 Python 中将字符串转换为字节 bytes
- Python 中字符串前面的 b