对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正则表达式分组概念与用法详解
Jun 24 Python
Python+OpenCV目标跟踪实现基本的运动检测
Jul 10 Python
对python捕获ctrl+c手工中断程序的两种方法详解
Dec 26 Python
Python反爬虫技术之防止IP地址被封杀的讲解
Jan 09 Python
python实现邮件自动发送
Aug 10 Python
python分布式计算dispy的使用详解
Dec 22 Python
Python基础之高级变量类型实例详解
Jan 03 Python
Pytorch中的VGG实现修改最后一层FC
Jan 15 Python
python通过opencv实现图片裁剪原理解析
Jan 19 Python
Python打印特殊符号及对应编码解析
May 07 Python
python自动化八大定位元素讲解
Jul 09 Python
Python3的进程和线程你了解吗
Mar 16 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
颠覆常识!无色透明的咖啡诞生了(中日双语)
2021/03/03 咖啡文化
木翼下载系统中说明的PHP安全配置方法
2007/06/16 PHP
变量在 PHP7 内部的实现(一)
2015/12/21 PHP
详解PHP序列化和反序列化原理
2018/01/15 PHP
PHP+redis实现的悲观锁机制示例
2018/06/12 PHP
Laravel监听数据库访问,打印SQL的例子
2019/10/24 PHP
JS读取XML文件示例代码
2013/11/15 Javascript
遍历DOM对象内的元素属性示例代码
2014/02/08 Javascript
javascript实现回车键提交表单方法总结
2015/01/10 Javascript
简介JavaScript中toTimeString()方法的使用
2015/06/12 Javascript
jquery实现动画菜单的左右滚动、渐变及图形背景滚动等效果
2015/08/25 Javascript
jQuery插件实现无缝滚动特效
2015/11/24 Javascript
学习javascript文件加载优化
2016/02/19 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
2017/04/10 Javascript
jQuery+koa2实现简单的Ajax请求的示例
2018/03/06 jQuery
vue 路由嵌套高亮问题的解决方法
2018/05/17 Javascript
vue实现条件叠加搜索的解决方法
2019/05/28 Javascript
使用python解析xml成对应的html示例分享
2014/04/02 Python
Python编程使用*解包和itertools.product()求笛卡尔积的方法
2017/12/18 Python
Django 中间键和上下文处理器的使用
2019/03/17 Python
python保存字典和读取字典的实例代码
2019/07/07 Python
用于ETL的Python数据转换工具详解
2020/07/21 Python
Python tempfile模块生成临时文件和临时目录
2020/09/30 Python
在vscode中启动conda虚拟环境的思路详解
2020/12/25 Python
CSS3 @media的基本用法总结
2019/09/10 HTML / CSS
中国高端家电购物商城:顺电
2018/03/04 全球购物
Trina Turk官网:美国时装和泳装品牌
2018/06/10 全球购物
长青弘远的面试题
2012/06/09 面试题
大学生求职简历的自我评价范文
2013/10/12 职场文书
家长会欢迎标语
2014/06/24 职场文书
授权收款委托书范本
2014/10/10 职场文书
餐厅服务员岗位职责
2015/02/09 职场文书
《藏戏》教学反思
2016/02/23 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python
MySQL分布式恢复进阶
2022/07/23 MySQL