对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
ssh批量登录并执行命令的python实现代码
May 25 Python
python中二维阵列的变换实例
Oct 09 Python
剖析Django中模版标签的解析与参数传递
Jul 21 Python
Python随机数random模块使用指南
Sep 09 Python
Python字符串格式化的方法(两种)
Sep 19 Python
Python实现的爬虫刷回复功能示例
Jun 07 Python
Python读取txt某几列绘图的方法
Oct 14 Python
PyCharm代码提示忽略大小写设置方法
Oct 28 Python
Anaconda的安装及其环境变量的配置详解
Apr 22 Python
python输入中文的实例方法
Sep 14 Python
Python 线程池模块之多线程操作代码
May 20 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更改目录及子目录下所有的文件后缀扩展名的代码
2010/10/12 PHP
php+jQuery实现的三级导航栏下拉菜单显示效果
2017/08/10 PHP
php学习笔记之字符串常见操作总结
2019/07/16 PHP
thinkPHP5.1框架使用SemanticUI实现分页功能示例
2019/08/03 PHP
ThinkPHP类似AOP思想的参数验证的实现方法
2019/12/18 PHP
自适应高度框架 ----属个人收藏内容
2007/01/22 Javascript
JavaScript Event学习第十章 一些可替换的事件对
2010/02/10 Javascript
Javascript 面向对象 继承
2010/05/13 Javascript
JavaScript 以对象为索引的关联数组
2010/05/19 Javascript
基于JQuery的一句代码实现表格的简单筛选
2010/07/26 Javascript
MVC+jQuery.Ajax异步实现增删改查和分页
2020/12/22 Javascript
easyui window refresh 刷新两次的解决方法(推荐)
2016/05/18 Javascript
深入理解js中this的用法
2016/05/28 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
详解Vue 多级组件透传新方法provide/inject
2018/05/09 Javascript
小程序简单两栏瀑布流效果的实现
2019/12/18 Javascript
es6函数之rest参数用法实例分析
2020/04/18 Javascript
Javascript前端下载后台传来的文件流代码实例
2020/08/18 Javascript
[09:13]DOTA2-DPC中国联赛 正赛 Ehome vs Magma 选手采访 1月19日
2021/03/11 DOTA
python中enumerate函数用法实例分析
2015/05/20 Python
Python设计模式之工厂模式简单示例
2018/01/09 Python
详解在python操作数据库中游标的使用方法
2019/11/12 Python
css3实现圆锥渐变conic-gradient效果
2020/02/12 HTML / CSS
基于HTML5 Canvas的3D动态Chart图表的示例
2017/11/02 HTML / CSS
介绍JAVA 中的Collection FrameWork(及如何写自己的数据结构)
2014/10/31 面试题
UNIX文件系统分类
2014/11/11 面试题
保护环境的建议书
2014/03/12 职场文书
幼儿园健康教育方案
2014/06/14 职场文书
实验室标语
2014/06/21 职场文书
超市促销活动总结
2014/07/01 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
党的群众路线领导班子整改方案
2014/09/27 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
复制别人的成功真的会成功吗?
2019/10/17 职场文书
判断Python中的Nonetype类型
2021/05/25 Python
Python torch.flatten()函数案例详解
2021/08/30 Python