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

作者:wjzhangcsu 时间:2022-12-10 22:15:36 

在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)

来源:https://blog.csdn.net/wjzhangcsu/article/details/74989927

标签:Python3,bytes,HexStr
0
投稿

猜你喜欢

  • Python使用matplotlib.pyplot as plt绘图图层优先级问题

    2022-06-10 18:00:37
  • python的sorted函数及使用解析

    2022-03-02 05:52:21
  • JS轮播图实现简单代码

    2024-04-28 09:38:41
  • MySQL中InnoDB的间隙锁问题

    2024-01-25 11:13:58
  • python编写softmax函数、交叉熵函数实例

    2023-11-24 07:08:11
  • ORACLE应用经验(2)

    2010-07-31 13:31:00
  • 基于JS判断iframe是否加载成功的方法(多种浏览器)

    2023-08-24 04:14:52
  • python在html中插入简单的代码并加上时间戳的方法

    2022-06-19 05:33:01
  • sqlserver添加sa用户和密码的实现

    2024-01-20 18:42:15
  • 在Pycharm中执行scrapy命令的方法

    2022-10-17 03:45:26
  • django框架使用方法详解

    2021-07-07 18:12:00
  • JavaScript ES6的新特性使用新方法定义Class

    2024-04-10 11:00:30
  • Google 地图API Map()构造器详解

    2024-05-05 09:29:04
  • 使用 Vue cli 3.0 构建自定义组件库的方法

    2024-05-05 09:07:50
  • 利用django+wechat-python-sdk 创建微信服务器接入的方法

    2023-06-04 21:28:55
  • pycharm中使用request和Pytest进行接口测试的方法

    2022-06-30 03:34:46
  • 交互设计规范原则

    2011-09-30 11:52:12
  • Python线程threading模块用法详解

    2023-01-30 03:55:01
  • 利用python对mysql表做全局模糊搜索并分页实例

    2024-01-20 05:29:47
  • Python利用Selenium实现网站自动签到功能

    2021-04-22 18:20:02
  • asp之家 网络编程 m.aspxhome.com