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


Posted in Python onDecember 04, 2018

在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 相关文章推荐
Python获取央视节目单的实现代码
Jul 25 Python
Python中在for循环中嵌套使用if和else语句的技巧
Jun 20 Python
Python实现PS图像调整黑白效果示例
Jan 25 Python
Django项目中model的数据处理以及页面交互方法
May 30 Python
关于python下cv.waitKey无响应的原因及解决方法
Jan 10 Python
Python 中的参数传递、返回值、浅拷贝、深拷贝
Jun 25 Python
Python使用pyserial进行串口通信的实例
Jul 02 Python
浅谈Python3识别判断图片主要颜色并和颜色库进行对比的方法
Oct 25 Python
Python 装饰器原理、定义与用法详解
Dec 07 Python
基于python 等频分箱qcut问题的解决
Mar 03 Python
Python数据类型最全知识总结
May 31 Python
Python进程池与进程锁之语法学习
Apr 11 Python
python 实现数字字符串左侧补零的方法
Dec 04 #Python
Python发送邮件功能示例【使用QQ邮箱】
Dec 04 #Python
python无限生成不重复(字母,数字,字符)组合的方法
Dec 04 #Python
uwsgi+nginx部署Django项目操作示例
Dec 04 #Python
解决python中无法自动补全代码的问题
Dec 04 #Python
Django框架实现的简单分页功能示例
Dec 04 #Python
Django开发的简易留言板案例详解
Dec 04 #Python
You might like
PHP中如何使用Redis接管文件存储Session详解
2018/11/28 PHP
PHP获取ttf格式文件字体名的方法示例
2019/03/06 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
jQuery 位置插件
2008/12/25 Javascript
jquery select(列表)的操作(取值/赋值)
2011/03/16 Javascript
一个挺有意思的Javascript小问题说明
2011/09/26 Javascript
JS的事件绑定深入认识
2014/06/26 Javascript
nodejs调用cmd命令实现复制目录
2015/05/04 NodeJs
javascript实现点击后变换按钮显示文字的方法
2015/05/13 Javascript
jQuery实现获取绑定自定义事件元素的方法
2015/12/02 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
NodeJS和BootStrap分页效果的实现代码
2016/11/07 NodeJs
JS实现图片预加载之无序预加载功能代码
2017/05/12 Javascript
ES6深入理解之“let”能替代”var“吗?
2017/06/28 Javascript
BootStrap 页签切换失效的解决方法
2017/08/17 Javascript
用JavaScript做简易的购物车的代码示例
2017/10/20 Javascript
关于NodeJS中的循环引用详解
2019/07/23 NodeJs
ES6 Generator基本使用方法示例
2020/06/06 Javascript
angular共享依赖的解决方案分享
2020/10/15 Javascript
[01:01:36]Optic vs paiN 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
python的urllib模块显示下载进度示例
2014/01/17 Python
pytorch中的transforms模块实例详解
2019/12/31 Python
python通过对字典的排序,对json字段进行排序的实例
2020/02/27 Python
Python基于xlrd模块处理合并单元格
2020/07/28 Python
详解python的xlwings库读写excel操作总结
2021/02/26 Python
一款利用html5和css3动画排列人物头像的实例演示
2014/12/05 HTML / CSS
太阳镜仓库,售价20美元或更少:Sunglass Warehouse
2016/09/28 全球购物
Etam艾格英国官网:法国著名女装品牌
2019/04/15 全球购物
Eclipse面试题
2014/03/22 面试题
专科毕业生求职简历的自我评价
2013/10/12 职场文书
学生干部的自我评价分享
2014/01/18 职场文书
司机辞职报告范文
2014/01/20 职场文书
2014优秀党员事迹材料
2014/08/14 职场文书
小学运动会入场词
2015/07/18 职场文书
在windows server 2012 r2中安装mysql的详细步骤
2022/07/23 Servers