python将十六进制值转换为字符串的三种方法

 更新时间:2023年07月31日 11:04:12   作者:巨量HTTP  
这篇文章主要给大家介绍了关于python将十六进制值转换为字符串的三种方法,工作内容的需要需求,经常需要使用到字符同16进制,以及各个进制之间的转换,需要的朋友可以参考下

Python 中提供了几种将十六进制值转换为字符串的方法,下面将介绍其中的三种方法。

1. 使用 bytes.fromhex() 方法

bytes.fromhex() 方法可以将十六进制字符串转换为字节串,然后再将字节串转换为字符串。例如:

hex_str = "48656c6c6f20576f726c64"
byte_str = bytes.fromhex(hex_str)
str_result = byte_str.decode("utf-8")
 
print(str_result)  # 输出:Hello World

其中,bytes.fromhex() 方法将十六进制字符串转换为字节串,byte_str.decode("utf-8") 方法将字节串转换为字符串。

需要注意的是,bytes.fromhex() 方法只能处理没有空格的十六进制字符串,如果输入的十六进制字符串包含空格,需要先将空格删除,例如:

hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64"
hex_str = hex_str.replace(" ", "")  # 删除空格
byte_str = bytes.fromhex(hex_str)
str_result = byte_str.decode("utf-8")
 
print(str_result)  # 输出:Hello World

2. 使用 binascii.unhexlify() 方法

binascii.unhexlify() 方法可以将十六进制字符串转换为字节串,然后再将字节串转换为字符串。例如:

import binascii
 
hex_str = "48656c6c6f20576f726c64"
byte_str = binascii.unhexlify(hex_str)
str_result = byte_str.decode("utf-8")
 
print(str_result)  # 输出:Hello World

其中,binascii.unhexlify() 方法将十六进制字符串转换为字节串,byte_str.decode("utf-8") 方法将字节串转换为字符串。

需要注意的是,binascii.unhexlify() 方法只能处理没有空格的十六进制字符串,如果输入的十六进制字符串包含空格,需要先将空格删除,例如:

import binascii
 
hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64"
hex_str = hex_str.replace(" ", "")  # 删除空格
byte_str = binascii.unhexlify(hex_str)
str_result = byte_str.decode("utf-8")
 
print(str_result)  # 输出:Hello World

3. 使用 codecs.decode() 方法

codecs.decode() 方法可以将十六进制字符串直接转换为字符串。例如:

import codecs
 
hex_str = "48656c6c6f20576f726c64"
str_result = codecs.decode(hex_str, "hex").decode("utf-8")
 
print(str_result)  # 输出:Hello World

其中,codecs.decode() 方法将十六进制字符串直接转换为字节串,byte_str.decode("utf-8") 方法将字节串转换为字符串。

需要注意的是,codecs.decode() 方法只能处理没有空格的十六进制字符串,如果输入的十六进制字符串包含空格,需要先将空格删除,例如:

import codecs
 
hex_str = "48 65 6c 6c 6f 20 57 6f 72 6c 64"
hex_str = hex_str.replace(" ", "")  # 删除空格
str_result = codecs.decode(hex_str, "hex").decode("utf-8")
 
print(str_result)  # 输出:Hello World

这三种方法都可以将十六进制值转换为字符串,选择哪一种方法取决于你的使用场景和偏好。需要注意的是,如果十六进制字符串不合法,这些方法都会抛出异常,需要对输入的十六进制字符串进行合法性检查。

附:Python -- 十六进制与字符串的相互转换

# 字符串与十六进制的转义
# coding utf-8
 
 
char =  input("请输入字符串")
_char = char.encode().hex()
print(char + " 的十六进制序列是:" + _char)
 
_char1 = bytes.fromhex(_char).decode()
print(_char + " 十六进制转字符串是 :" + _char1)

总结

到此这篇关于python将十六进制值转换为字符串的三种方法的文章就介绍到这了,更多相关python十六进制值转字符串内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • python字典的值可以修改吗

    python字典的值可以修改吗

    在本篇文章里小编给大家分享的是一篇关于python字典的值修改的方法步骤,需要的朋友们可以学习下。
    2020-06-06
  • 使用Pandas修改DataFrame中某一列的值

    使用Pandas修改DataFrame中某一列的值

    DataFrame是Pandas中的主要数据结构之一,下面这篇文章主要给大家介绍了关于使用Pandas修改DataFrame中某一列的值的相关资料,文中通过图文介绍的非常详细,需要的朋友可以参考下
    2022-12-12
  • 如何安装2019Pycharm最新版本(详细教程)

    如何安装2019Pycharm最新版本(详细教程)

    这篇文章主要介绍了如何安装2019Pycharm最新版本(详细教程),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • Python函数生成器原理及使用详解

    Python函数生成器原理及使用详解

    这篇文章主要介绍了Python函数生成器原理及使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Python考拉兹猜想输出序列代码实践

    Python考拉兹猜想输出序列代码实践

    这篇文章主要介绍了Python考拉兹猜想输出序列代码实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-07-07
  • 基于PyQT5制作英雄联盟全皮肤下载器

    基于PyQT5制作英雄联盟全皮肤下载器

    这篇文章主要介绍了基于PyQt5制作的简易英雄联盟全皮肤下载器,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起动手尝试一下
    2022-02-02
  • Python爬虫PyQuery库基本用法入门教程

    Python爬虫PyQuery库基本用法入门教程

    这篇文章主要介绍了Python爬虫PyQuery库基本用法,结合实例形式较为详细的分析了pyQuery库字符串初始化、打开网页、css属性、标签内容等获取、DOM基本操作等相关技巧与使用注意事项,需要的朋友可以参考下
    2018-08-08
  • 十分钟利用Python制作属于你自己的个性logo

    十分钟利用Python制作属于你自己的个性logo

    这篇文章主要给大家介绍了关于十分钟如何利用Python制作属于你自己的个性logo的相关资料,主要利用的是词云实现这个效果,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友下面来一起看看吧
    2018-05-05
  • Python装饰器使用实例:验证参数合法性

    Python装饰器使用实例:验证参数合法性

    这篇文章主要介绍了Python装饰器使用实例:验证参数合法性,本文直接给出代码实例,代码中包含详细注释,需要的朋友可以参考下
    2015-06-06
  • Python基于SciPy库实现统计分析与建模

    Python基于SciPy库实现统计分析与建模

    SciPy是一个强大的Python库,提供了丰富的科学计算和数据分析工具,本文我们将探讨如何使用Python和SciPy库进行统计分析和建模,感兴趣的可以学习一下
    2023-06-06

最新评论