对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 ZipFile模块详解
Nov 01 Python
Python如何实现MySQL实例初始化详解
Nov 06 Python
python Spyder界面无法打开的解决方法
Apr 27 Python
点球小游戏python脚本
May 22 Python
使用python批量读取word文档并整理关键信息到excel表格的实例
Nov 07 Python
对Python中DataFrame选择某列值为XX的行实例详解
Jan 29 Python
python 读取文件并把矩阵转成numpy的两种方法
Feb 12 Python
python3 dict ndarray 存成json,并保留原数据精度的实例
Dec 06 Python
Pytorch在NLP中的简单应用详解
Jan 08 Python
django模板获取list中指定索引的值方式
May 14 Python
python 字符串的驻留机制及优缺点
Jun 19 Python
利用Vscode进行Python开发环境配置的步骤
Jun 22 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聊天室技术
2006/10/09 PHP
php防注入,表单提交值转义的实现详解
2013/06/10 PHP
解析如何去掉CodeIgniter URL中的index.php
2013/06/25 PHP
destoon整合UCenter图文教程
2014/06/21 PHP
PHP测试成功的邮件发送案例
2015/10/26 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
Javascript Web Slider 焦点图示例源码
2013/10/10 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
javascript 判断整数方法分享
2014/12/16 Javascript
基于jQuery实现网页进度显示插件
2015/03/04 Javascript
ECMAScript中函数function类型
2015/06/03 Javascript
javascript控制图片播放的实现代码
2020/07/29 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
每天一篇javascript学习小结(属性定义方法)
2015/11/19 Javascript
javascript每日必学之继承
2016/02/23 Javascript
微信小程序 action-sheet底部菜单详解
2016/10/27 Javascript
js窗口震动小程序分享
2016/11/28 Javascript
NodeJs实现定时任务的示例代码
2017/12/05 NodeJs
angular2 组件之间通过service互相传递的实例
2018/09/30 Javascript
微信小程序中使用echarts的实现方法
2019/04/24 Javascript
vscode vue 文件模板的配置方法
2019/07/23 Javascript
[01:12](回顾)DOTA2国际邀请赛,全世界DOTAer的盛宴
2014/07/01 DOTA
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
对python 合并 累加两个dict的实例详解
2019/01/21 Python
django基于cors解决跨域请求问题详解
2019/08/06 Python
Python调用Windows命令打印文件
2020/02/07 Python
Python写出新冠状病毒确诊人数地图的方法
2020/02/12 Python
python工具——Mimesis的简单使用教程
2021/01/16 Python
网站美工岗位职责
2014/04/02 职场文书
公司员工活动策划方案
2014/08/20 职场文书
王兆力在市委党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
2015年事业单位办公室文员工作总结
2015/04/24 职场文书
科技活动总结范文
2015/05/11 职场文书
运动员入场词
2015/07/18 职场文书
nginx处理http请求实现过程解析
2021/03/31 Servers