对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 相关文章推荐
如何搜索查找并解决Django相关的问题
Jun 30 Python
Python实现网站注册验证码生成类
Jun 08 Python
Python使用struct处理二进制的实例详解
Sep 11 Python
Python数据分析之双色球基于线性回归算法预测下期中奖结果示例
Feb 08 Python
python3之模块psutil系统性能信息使用
May 30 Python
纯用NumPy实现神经网络的示例代码
Oct 24 Python
python启动应用程序和终止应用程序的方法
Jun 28 Python
python处理自动化任务之同时批量修改word里面的内容的方法
Aug 23 Python
python DES加密与解密及hex输出和bs64格式输出的实现代码
Apr 13 Python
python小程序之4名牌手洗牌发牌问题解析
May 15 Python
django 获取字段最大值,最新的记录操作
Aug 09 Python
python使用pywinauto驱动微信客户端实现公众号爬虫
May 19 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使用gd2绘制基本图形示例(直线、圆、正方形)
2017/02/15 PHP
搜索附近的人PHP实现代码
2018/02/11 PHP
PHP连接及操作PostgreSQL数据库的方法详解
2019/01/30 PHP
ExtJs 3.1 XmlTreeLoader Example Error
2010/02/09 Javascript
js实现点小图看大图效果的思路及示例代码
2013/10/28 Javascript
实现高性能JavaScript之执行与加载
2016/01/30 Javascript
最棒的Angular2表格控件
2016/08/10 Javascript
Javascript 动态改变imput type属性
2016/11/01 Javascript
JS作用域深度解析
2016/12/29 Javascript
vue日期组件 支持vue1.0和2.0
2017/01/09 Javascript
利用HTML5+Socket.io实现摇一摇控制PC端歌曲切换
2017/01/13 Javascript
jQuery插件扩展操作入门示例
2017/01/16 Javascript
bootstrap配合Masonry插件实现瀑布式布局
2017/01/18 Javascript
CentOS 安装NodeJS V8.0.0的方法
2017/06/15 NodeJs
详解ES6之用let声明变量以及let loop机制
2017/07/15 Javascript
利用node.js实现反向代理的方法详解
2017/07/24 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
angular内置provider之$compileProvider详解
2017/09/27 Javascript
基于Require.js使用方法(总结)
2017/10/26 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
vue-cli3项目展示本地Markdown文件的方法
2019/06/07 Javascript
关于微信小程序map组件z-index的层级问题分析
2019/07/09 Javascript
微信小程序实现点击卡片 翻转效果
2019/09/04 Javascript
Vue组件简易模拟实现购物车
2020/12/21 Vue.js
python控制台显示时钟的示例
2014/02/24 Python
用Python制作简单的钢琴程序的教程
2015/04/01 Python
python中的unittest框架实例详解
2021/02/05 Python
详解CSS3伸缩布局盒模型Flex布局
2018/08/20 HTML / CSS
Finishline官网:美国一家领先的运动品牌鞋类、服装零售商
2016/07/20 全球购物
意大利奢侈品网站:Italist
2016/08/23 全球购物
小区的门卫岗位职责
2014/10/01 职场文书
2014村党支部书记党建工作汇报材料
2014/11/02 职场文书
大学生个人学年总结
2015/02/15 职场文书
2016优秀大学生个人事迹材料范文
2016/03/01 职场文书
Python网络编程之ZeroMQ知识总结
2021/04/25 Python
Python&Matlab实现樱花的绘制
2022/04/07 Python