对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 相关文章推荐
Pycharm学习教程(1) 定制外观
May 02 Python
python基础教程项目三之万能的XML
Apr 02 Python
python 获取list特定元素下标的实例讲解
Apr 09 Python
Python实现读取字符串按列分配后按行输出示例
Apr 17 Python
tensorflow实现简单的卷积神经网络
May 24 Python
无法使用pip命令安装python第三方库的原因及解决方法
Jun 12 Python
用Python shell简化开发
Aug 08 Python
Python使用pyautogui模块实现自动化鼠标和键盘操作示例
Sep 04 Python
python rsa实现数据加密和解密、签名加密和验签功能
Sep 18 Python
Python 元组操作总结
Sep 18 Python
python 如何用map()函数创建多线程任务
Apr 07 Python
python 使用pandas读取csv文件的方法
Dec 24 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
全国FM电台频率大全 - 9 上海市
2020/03/11 无线电
php中经典方法实现判断多维数组是否为空
2011/10/23 PHP
领悟php接口中interface存在的意义
2013/06/27 PHP
php封装db类连接sqlite3数据库的方法实例
2017/12/19 PHP
PHP中“=>
2019/03/01 PHP
JS 退出系统并跳转到登录界面的实现代码
2013/06/29 Javascript
用nodejs实现PHP的print_r函数代码
2014/03/14 NodeJs
jquery实现html页面 div 假分页有原理有代码
2014/09/06 Javascript
javascript实现多栏闭合展开式广告位菜单效果实例
2015/08/05 Javascript
jQuery实现折叠、展开的菜单组效果代码
2015/09/16 Javascript
JS实现可自定义大小,可双击关闭的弹出层效果
2015/10/16 Javascript
jQuery Mobile和HTML5开发App推广注册页
2016/11/07 Javascript
node使用Mongoose类库实现简单的增删改查
2018/11/08 Javascript
vue watch关于对象内的属性监听
2019/04/22 Javascript
浅析JS中NEW的实现原理及重写
2020/02/20 Javascript
JavaScript设计模式---单例模式详解【四种基本形式】
2020/05/16 Javascript
Python实现文件复制删除
2016/04/19 Python
浅析使用Python操作文件
2017/07/31 Python
Python2和Python3中urllib库中urlencode的使用注意事项
2018/11/26 Python
利用ctypes获取numpy数组的指针方法
2019/02/12 Python
python实现将两个文件夹合并至另一个文件夹(制作数据集)
2020/04/03 Python
浅析Python中字符串的intern机制
2020/10/03 Python
为世界各地的女性设计和生产时尚服装:ROMWE
2016/09/17 全球购物
美国睫毛、眉毛精华液领导品牌:RevitaLash Cosmetics
2018/03/26 全球购物
大学生优秀的自我评价分享
2013/10/22 职场文书
高中化学教学反思
2014/01/13 职场文书
婚庆公司的创业计划书
2014/01/22 职场文书
优秀学生获奖感言
2014/02/15 职场文书
收款授权委托书
2014/10/02 职场文书
大学生翘课检讨书范文
2014/10/06 职场文书
2014年调度员工作总结
2014/11/19 职场文书
市场督导岗位职责
2015/04/10 职场文书
2015年科室工作总结
2015/04/10 职场文书
商务宴会祝酒词
2015/08/11 职场文书
php 防护xss,PHP的防御XSS注入的终极解决方案
2021/04/01 PHP
CSS使用Flex和Grid布局实现3D骰子
2022/08/05 HTML / CSS