Python hexstring-list-str之间的转换方法


Posted in Python onJune 12, 2019

在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)

以上这篇Python hexstring-list-str之间的转换方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python基础教程之元组操作使用详解
Mar 25 Python
深入探究Python中变量的拷贝和作用域问题
May 05 Python
django实现同一个ip十分钟内只能注册一次的实例
Nov 03 Python
Python中实例化class的执行顺序示例详解
Oct 14 Python
Python函数基础实例详解【函数嵌套,命名空间,函数对象,闭包函数等】
Mar 30 Python
OpenCV 模板匹配
Jul 10 Python
Python3远程监控程序的实现方法
Jul 15 Python
解决python replace函数替换无效问题
Jan 18 Python
pytorch数据预处理错误的解决
Feb 20 Python
Python unittest单元测试框架及断言方法
Apr 15 Python
TensorFlow保存TensorBoard图像操作
Jun 23 Python
Python模拟键盘输入自动登录TGP
Nov 27 Python
对python3.4 字符串转16进制的实例详解
Jun 12 #Python
python版DDOS攻击脚本
Jun 12 #Python
selenium处理元素定位点击无效问题
Jun 12 #Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 #Python
python3.4 将16进制转成字符串的实例
Jun 12 #Python
python binascii 进制转换实例
Jun 12 #Python
Python3 实现串口两进程同时读写
Jun 12 #Python
You might like
php简单的会话类代码
2011/08/08 PHP
PHP防止注入攻击实例分析
2014/11/03 PHP
PHP调用wsdl文件类型的接口代码分享
2014/11/19 PHP
php获取YouTube视频信息的方法
2015/02/11 PHP
PHP微信刮刮卡 附微信接口
2016/07/22 PHP
VSCode+PHPstudy配置PHP开发环境的步骤详解
2020/08/20 PHP
Aptana调试javascript图解教程
2009/11/30 Javascript
div当滚动到页面顶部的时候固定在顶部实例代码
2013/05/27 Javascript
jQuery中each()方法用法实例
2014/12/27 Javascript
javascript禁止访客复制网页内容的实现代码
2015/08/05 Javascript
非常实用的js验证框架实现源码 附原理方法
2016/06/08 Javascript
EditPlus 正则表达式 实战(3)
2016/12/15 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
深入剖析Express cookie-parser中间件实现示例
2018/02/01 Javascript
vuejs前后端数据交互之从后端请求数据的实例
2018/08/11 Javascript
解决vue初始化项目时,一直卡在Project description上的问题
2019/10/31 Javascript
JavaScript面试中常考的字符串操作方法大全(包含ES6)
2020/05/10 Javascript
javascript中导出与导入实现模块化管理教程
2020/12/03 Javascript
[01:15:18]2014 DOTA2国际邀请赛中国区预选赛 LGD VS Speed Gaming.cn
2014/05/22 DOTA
Python pandas如何向excel添加数据
2020/05/22 Python
基于python实现破解滑动验证码过程解析
2020/05/28 Python
css3实现椭圆轨迹旋转的示例代码
2018/10/29 HTML / CSS
意大利在线眼镜精品店:Ottica Lipari
2019/11/11 全球购物
汽车检测与维修应届毕业生求职信
2013/10/19 职场文书
服装设计行业个人的自我评价
2013/12/20 职场文书
一年级语文教学反思
2014/02/13 职场文书
有趣的广告词
2014/03/18 职场文书
企业总经理任命书
2014/06/05 职场文书
公司证明怎么写
2014/09/22 职场文书
终止或解除劳动合同及劳动关系的证明书
2014/10/06 职场文书
2014年村委会工作总结
2014/11/24 职场文书
医药公司采购员岗位职责
2015/04/03 职场文书
法院答辩状格式
2015/05/22 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
六年级语文教学反思
2016/03/03 职场文书
Nginx HTTP跳转至HTTPS
2022/05/15 Servers