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 11 Python
Python修改MP3文件的方法
Jun 15 Python
python冒泡排序简单实现方法
Jul 09 Python
浅谈function(函数)中的动态参数
Apr 30 Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 Python
PyQt4实现下拉菜单可供选择并打印出来
Apr 20 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
keras K.function获取某层的输出操作
Jun 29 Python
安装pytorch时报sslerror错误的解决方案
May 17 Python
Python基础教程,Python入门教程(超详细)
Jun 24 Python
python的变量和简单数字类型详解
Sep 15 Python
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 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
有关phpmailer的详细介绍及使用方法
2013/01/28 PHP
thinkphp模板的包含与渲染实例分析
2014/11/26 PHP
wordpress安装过程中遇到中文乱码的处理方法
2015/04/21 PHP
yii2使用ajax返回json的实现方法
2016/05/14 PHP
浅谈PHP之ThinkPHP框架使用详解
2020/07/21 PHP
JQuery 常用操作代码
2010/03/14 Javascript
Js 获取Gridview选中行的内容操作步骤
2013/02/05 Javascript
Js+php实现异步拖拽上传文件
2015/06/23 Javascript
javascript实现添加附件功能的方法
2015/11/18 Javascript
JS基础随笔(菜鸟必看篇)
2016/07/13 Javascript
JavaScript数组操作函数汇总
2016/08/05 Javascript
js实现右键自定义菜单
2016/12/03 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
vue 内置过滤器的使用总结(附加自定义过滤器)
2018/12/11 Javascript
浅析vue中的MVVM实现原理
2019/03/04 Javascript
js中复选框的取值及赋值示例详解
2020/10/18 Javascript
[01:22:19]EG vs TNC Supermajor小组赛B组败者组第一轮 BO3 第二场 6.2
2018/06/03 DOTA
python 矩阵增加一行或一列的实例
2018/04/04 Python
用pandas中的DataFrame时选取行或列的方法
2018/07/11 Python
PyCharm设置SSH远程调试的方法
2018/07/17 Python
在python中使用xlrd获取合并单元格的方法
2018/12/26 Python
python 自动轨迹绘制的实例代码
2019/07/05 Python
django 信号调度机制详解
2019/07/19 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Html5新标签datalist实现输入框与后台数据库数据的动态匹配
2017/05/18 HTML / CSS
美国美发品牌:Bumble and Bumble
2016/10/08 全球购物
JS原生实现轮播图的几种方法
2021/03/23 Javascript
大学军训感言600字
2014/02/25 职场文书
信息管理应届生求职信
2014/03/07 职场文书
校园标语大全
2014/06/19 职场文书
立志成才演讲稿
2014/09/04 职场文书
入党积极分子对十八届四中全会期盼的思想汇报
2014/10/17 职场文书
2019年世界儿童日宣传标语
2019/11/22 职场文书
如何制作自己的原生JavaScript路由
2021/05/05 Javascript