对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 条件判断的缩写方法
Sep 06 Python
Python验证码识别的方法
Jul 10 Python
python中利用await关键字如何等待Future对象完成详解
Sep 07 Python
解决每次打开pycharm直接进入项目的问题
Oct 28 Python
Python GUI编程完整示例
Apr 04 Python
Python中的十大图像处理工具(小结)
Jun 10 Python
Django REST Framework序列化外键获取外键的值方法
Jul 26 Python
python实现图像拼接功能
Mar 23 Python
python matplotlib模块基本图形绘制方法小结【直线,曲线,直方图,饼图等】
Apr 26 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
python实现三次密码验证的示例
Apr 29 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
利用ThinkPHP内置的ThinkAjax实现异步传输技术的实现方法
2011/12/19 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
php生成无限栏目树
2017/03/16 PHP
PHP设计模式之适配器模式定义与用法详解
2018/04/03 PHP
javascript Array.sort() 跨浏览器下需要考虑的问题
2009/12/07 Javascript
jQuery中的常用事件总结
2009/12/27 Javascript
jQuery温习篇 强大的JQuery选择器
2010/04/24 Javascript
别了 JavaScript中的isXX系列
2012/08/01 Javascript
jquery 无限级下拉菜单的简单实现代码
2014/02/21 Javascript
详谈JavaScript内存泄漏
2014/11/14 Javascript
JS实现点击文字对应DIV层不停闪动效果的方法
2015/03/02 Javascript
js实现黑色简易的滑动门网页tab选项卡效果
2015/08/31 Javascript
轻松学习jQuery插件EasyUI EasyUI创建菜单与按钮
2015/11/30 Javascript
详解node-ccap模块生成captcha验证码
2017/07/01 Javascript
本地搭建微信小程序服务器的实现方法
2017/10/27 Javascript
讲解vue-router之什么是嵌套路由
2018/05/28 Javascript
微信小程序向Java后台传输参数的方法实现
2020/12/10 Javascript
[04:26]DOTA2上海特锦赛小组赛第二日 TOP10精彩集锦
2016/02/27 DOTA
基于Python实现通过微信搜索功能查看谁把你删除了
2016/01/27 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
Tensorflow分类器项目自定义数据读入的实现
2019/02/05 Python
django restframework serializer 增加自定义字段操作
2020/07/15 Python
python上下文管理器异常问题解决方法
2021/02/07 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
HTML5 FormData 方法介绍以及实现文件上传示例
2017/09/12 HTML / CSS
HTML5利用约束验证API来检查表单的输入数据的代码实例
2016/12/20 HTML / CSS
HTML如何让IMG自动适应DIV容器大小的实现方法
2020/02/25 HTML / CSS
鱼油专家:Omegavia
2016/10/10 全球购物
攀岩、滑雪、徒步旅行装备:Black Diamond Equipment
2019/08/16 全球购物
师范生实习的个人自我鉴定
2013/10/20 职场文书
毕业生文员求职信
2013/11/03 职场文书
接受捐赠答谢词
2014/01/27 职场文书
《与象共舞》教学反思
2014/02/24 职场文书
美容院合作经营协议书
2014/10/10 职场文书
总结几个非常实用的Python库
2021/06/26 Python
Python爬虫基础之初次使用scrapy爬虫实例
2021/06/26 Python