对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网络爬虫采集联想词示例
Feb 11 Python
在Linux上安装Python的Flask框架和创建第一个app实例的教程
Mar 30 Python
Python中set与frozenset方法和区别详解
May 23 Python
对Python中range()函数和list的比较
Apr 19 Python
python批量修改文件编码格式的方法
May 31 Python
Python命名空间的本质和加载顺序
Dec 17 Python
DataFrame:通过SparkSql将scala类转为DataFrame的方法
Jan 29 Python
Python 寻找局部最高点的实现
Dec 05 Python
Python3实现监控新型冠状病毒肺炎疫情的示例代码
Feb 13 Python
python3.7 openpyxl 在excel单元格中写入数据实例
Sep 01 Python
Python3+SQLAlchemy+Sqlite3实现ORM教程
Feb 16 Python
Python预测分词的实现
Jun 18 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
《星际争霸2》终章已出 RTS时代宣告终结
2017/02/07 星际争霸
解析csv数据导入mysql的方法
2013/07/01 PHP
php编写的简单页面跳转功能实现代码
2013/11/27 PHP
推荐10个提供免费PHP脚本下载的网站
2014/12/31 PHP
php实现的一段简单概率相关代码
2016/05/30 PHP
thinkphp中的url跳转用法分析
2016/07/12 PHP
PHP通过调用新浪API生成t.cn格式短网址链接的方法详解
2019/02/20 PHP
Thinkphp5框架使用validate实现验证功能的方法
2019/08/27 PHP
JQuery Study Notes 学习笔记(一)
2010/08/04 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
js函数调用的方式
2014/05/06 Javascript
jquery实现多条件筛选特效代码分享
2015/08/28 Javascript
jquery简单倒计时实现方法
2015/12/18 Javascript
JavaScript File API文件上传预览
2016/02/02 Javascript
原生js实现新闻列表展开/收起全文功能
2017/01/20 Javascript
jquery实现一个全局计时器(商城可用)
2017/06/30 jQuery
vue form 表单提交后刷新页面的方法
2018/09/04 Javascript
vue项目中实现的微信分享功能示例
2019/01/21 Javascript
详解写好JS条件语句的5条守则
2019/02/28 Javascript
AI小程序之语音听写来了,十分钟掌握百度大脑语音听写全攻略
2020/03/13 Javascript
[49:35]LGD vs OG 2018国际邀请赛淘汰赛BO3 第二场 8.25
2018/08/29 DOTA
python3.5使用tkinter制作记事本
2016/06/20 Python
python多进程和多线程究竟谁更快(详解)
2017/05/29 Python
python实现教务管理系统
2018/03/12 Python
Python实现多线程的两种方式分析
2018/08/29 Python
Python单元测试模块doctest的具体使用
2020/02/10 Python
django 取消csrf限制的实例
2020/03/13 Python
Joules官网:女士、男士和儿童服装和鞋类
2018/10/23 全球购物
.NET概念性的面试题
2012/02/29 面试题
某科技软件测试面试题
2013/05/19 面试题
采购部岗位职责
2013/11/24 职场文书
企业管理部经理岗位职责
2013/12/24 职场文书
法学自荐信
2014/06/20 职场文书
基层干部群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
热情服务标语
2014/10/07 职场文书
判断Python中的Nonetype类型
2021/05/25 Python