对Python3中bytes和HexStr之间的转换详解

 更新时间:2018年12月04日 11:11:53   作者:wjzhangcsu  
今天小编就为大家分享一篇对Python3中bytes和HexStr之间的转换详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

在Python操作数据内容时,多数情况下可能遇到下面3种类型的数据处理:

hexstring 如:'1C532145697A8B6F'

str 如:'\x1C\x53\x21\x45\x69\x7A\x8B\x6F'

list 如:[0x1C, 0x53, 0x21, 0x45, 0x69, 0x7A, 0x8B, 0x6F]

各种第三方模块(如pyDes),或者自己写的接口中,可能存在由于类型不统一需要在这3种数据中来回切换的情况。

需要用到的核心的方法如下:

list() 将对象转换为list

str() 将对象转换为str

bytearray() 将对象转换为bytearray

bytearray.fromhex() 将对象从hexstring转换为bytearray

binascii.b2a_hex() 将对象从str转换为hexstring

1. 整形列表转str

如:[0x53, 0x21, 0x6A] -> '\x53\x21\x6a'

方法:list -> bytearray -> str

x = [0x53, 0x21, 0x6A] 
y = str(bytearray(x)) 

2. str转整形列表

如:'\x53\x21\6a' -> [0x53, 0x21, 0x6A]

方法:逐个字符转成十进制

x = '\x53\x21\x6a' 
y = [ord(c) for c in x] 

3. 整形列表转换为hex string

如: [0x53, 0x21, 0x6A] -> '53216A'

方法:list -> bytearray -> str -> hexstring

import binascii 
x = [0x53, 0x21, 0x6A] 
y = str(bytearray(x)) 
z = binascii.b2a_hex(y) 

4. hex string转换为整形列表

如: '53216A' -> [0x53, 0x21, 0x6A]

方法:hexstring -> bytearray -> list

x = '53216A' 
y = bytearray.fromhex(x) 
z = list(y) 

5. hex string转换为str

如: '53216A' -> '\x53\x21\x6A'

方法:hexstring -> bytearray -> str

x = '53216A' 
y = bytearray.fromhex(x) 
z = str(y) 

以上这篇对Python3中bytes和HexStr之间的转换详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python实现生成随机数据插入mysql数据库的方法

    Python实现生成随机数据插入mysql数据库的方法

    这篇文章主要介绍了Python实现生成随机数据插入mysql数据库的方法,涉及Python随机字符串生成及数据库连接、插入等相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • Pytest中skip和skipif的具体使用方法

    Pytest中skip和skipif的具体使用方法

    在实际的测试中,我们经常会遇到需要跳过某些测试用例的情况,pytest提供了skip和ifskip来跳过测试.下面我们就来通过一些例子看看skip和ifskip具体如何使用吧,需要的朋友可以参考下
    2021-06-06
  • python实现图片素描效果

    python实现图片素描效果

    这篇文章主要介绍了python如何实现图片素描效果,帮助大家利用python处理图片,感兴趣的朋友可以了解下
    2020-09-09
  • python 获取当天每个准点时间戳的实例

    python 获取当天每个准点时间戳的实例

    今天小编就为大家分享一篇python 获取当天每个准点时间戳的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-05-05
  • pytorch梯度剪裁方式

    pytorch梯度剪裁方式

    今天小编就为大家分享一篇pytorch梯度剪裁方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-02-02
  • Python模块Typing.overload的使用场景分析

    Python模块Typing.overload的使用场景分析

    在 Python 中,typing.overload 是一个用于定义函数重载的装饰器,函数重载是指在一个类中可以定义多个相同名字但参数不同的函数,使得在调用函数时可以根据参数的不同选择不同的函数执行,这篇文章主要介绍了Python模块Typing.overload的使用,需要的朋友可以参考下
    2024-02-02
  • matplotlib绘制饼图的基本配置(万能模板案例)

    matplotlib绘制饼图的基本配置(万能模板案例)

    饼图是常见的一种图表形式,本文主要介绍了matplotlib绘制饼图的基本配置(万能模板案例),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • python实现单链表的方法示例

    python实现单链表的方法示例

    这篇文章主要给大家介绍了关于python实现单链表的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用python具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • Python实现的双色球生成功能示例

    Python实现的双色球生成功能示例

    这篇文章主要介绍了Python实现的双色球生成功能,涉及Python基于random模块生成随机数的相关操作技巧,需要的朋友可以参考下
    2017-12-12
  • pytorch中permute()函数用法补充说明(矩阵维度变化过程)

    pytorch中permute()函数用法补充说明(矩阵维度变化过程)

    这篇文章主要给大家介绍了关于pytorch中permute()函数用法补充说明的相关资料,本文详细说明了permute函数里维度变化的详细过程,需要的朋友可以参考下
    2022-04-04

最新评论