对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实现二分查找算法实例
May 26 Python
在python3环境下的Django中使用MySQL数据库的实例
Aug 29 Python
Python基于高斯消元法计算线性方程组示例
Jan 17 Python
解决vscode python print 输出窗口中文乱码的问题
Dec 03 Python
Win10下python 2.7与python 3.7双环境安装教程图解
Oct 12 Python
pytorch nn.Conv2d()中的padding以及输出大小方式
Jan 10 Python
TensorFlow命名空间和TensorBoard图节点实例
Jan 23 Python
Python图像处理库PIL中图像格式转换的实现
Feb 26 Python
Python绘制地图神器folium的新人入门指南
May 23 Python
python pygame入门教程
Jun 01 Python
Python利用机器学习算法实现垃圾邮件的识别
Jun 28 Python
Python实现列表拼接和去重的三种方式
Jul 02 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加速 eAccelerator配置和使用指南
2009/06/05 PHP
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
php设计模式之单例模式代码
2016/06/11 PHP
Yii2中添加全局函数的方法分析
2017/05/04 PHP
Laravel 5+ .env环境配置文件详解
2020/04/06 PHP
用一段js程序来实现动画功能
2007/03/06 Javascript
js自动生成对象的属性示例代码
2013/10/28 Javascript
JavaScript中的6种运算符总结
2014/10/16 Javascript
seajs加载jquery时提示$ is not a function该怎么解决
2015/10/23 Javascript
巧用Javascript的逻辑运算符
2016/12/02 Javascript
vue.js 上传图片实例代码
2017/06/22 Javascript
Vue-Router进阶之滚动行为详解
2017/09/13 Javascript
angularjs实现时间轴效果的示例代码
2017/11/29 Javascript
js异步上传多张图片插件的使用方法
2018/10/22 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
使用webpack5从0到1搭建一个react项目的实现步骤
2020/12/16 Javascript
[02:56]DOTA2上海特锦赛小组赛解说FreeAgain采访花絮
2016/02/27 DOTA
[00:27]DOTA2荣耀之路2:Patience from zhou!
2018/05/24 DOTA
详解python3实现的web端json通信协议
2016/12/29 Python
Python线性方程组求解运算示例
2018/01/17 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
2018/12/03 Python
python从子线程中获得返回值的方法
2019/01/30 Python
python word转pdf代码实例
2019/08/16 Python
详解HTML5中的picture元素响应式处理图片
2018/01/03 HTML / CSS
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
教师自荐信
2013/12/10 职场文书
党员公开承诺书
2014/03/25 职场文书
党支部班子“四风”问题自我剖析材料
2014/09/28 职场文书
教师个人事迹材料
2014/12/17 职场文书
2015年母亲节寄语
2015/03/23 职场文书
最美乡村教师观后感
2015/06/11 职场文书
毕业生自我鉴定范文
2019/05/13 职场文书
初中生入团申请书范文(五篇)
2019/10/16 职场文书
Python的代理类实现,控制访问和修改属性的权限你都了解吗
2022/03/21 Python
Java实现带图形界面的聊天程序
2022/06/10 Java/Android