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使用SQLite和Excel操作进行数据分析
Jan 20 Python
opencv python 图像去噪的实现方法
Aug 31 Python
python简易实现任意位数的水仙花实例
Nov 13 Python
Python3非对称加密算法RSA实例详解
Dec 06 Python
Python使用reportlab模块生成PDF格式的文档
Mar 11 Python
python 监测内存和cpu的使用率实例
Nov 28 Python
Python ORM框架Peewee用法详解
Apr 29 Python
python将unicode和str互相转化的实现
May 11 Python
python装饰器实现对异常代码出现进行自动监控的实现方法
Sep 15 Python
Python os库常用操作代码汇总
Nov 03 Python
Python Selenium XPath根据文本内容查找元素的方法
Dec 07 Python
pytorch 两个GPU同时训练的解决方案
Jun 01 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
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
php date与gmdate的获取日期的区别
2010/02/08 PHP
php 数据库字段复用的基本原理与示例
2011/07/22 PHP
PHP 类相关函数的使用详解
2013/05/10 PHP
php继承中方法重载(覆盖)的应用场合
2015/02/09 PHP
php自动载入类用法实例分析
2016/06/24 PHP
JavaScript 权威指南(第四版) 读书笔记
2009/08/11 Javascript
JS打开新窗口的2种方式
2013/04/18 Javascript
js动态创建、删除表格示例代码
2013/08/07 Javascript
用jquery模仿的a的title属性的例子
2014/10/22 Javascript
javascript HTML+CSS实现经典橙色导航菜单
2016/02/16 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
深入理解JavaScript中的块级作用域、私有变量与模块模式
2016/10/31 Javascript
node中使用es5/6以及支持性与性能对比
2017/08/11 Javascript
聊聊JS动画库 Velocity.js的使用
2018/03/13 Javascript
详解原生JS回到顶部
2019/03/25 Javascript
vue实现文字加密功能
2019/09/27 Javascript
[37:23]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第二局
2016/03/04 DOTA
使用Python的判断语句模拟三目运算
2015/04/24 Python
Python 判断是否为质数或素数的实例
2017/10/30 Python
python编写朴素贝叶斯用于文本分类
2017/12/21 Python
Python中Threading用法详解
2017/12/27 Python
Python使用itertools模块实现排列组合功能示例
2018/07/02 Python
python 获取图片分辨率的方法
2019/01/08 Python
python基于paramiko将文件上传到服务器代码实现
2019/07/08 Python
解决Numpy中sum函数求和结果维度的问题
2019/12/06 Python
pytorch 模拟关系拟合——回归实例
2020/01/14 Python
Python logging模块原理解析及应用
2020/08/13 Python
html5文本内容_动力节点Java学院整理
2017/07/11 HTML / CSS
Booking.com荷兰:全球酒店网上预订
2017/08/22 全球购物
Lululemon英国官网:加拿大瑜伽服装品牌
2019/01/14 全球购物
String和StringBuffer的区别
2015/08/13 面试题
省三好学生申请材料
2014/01/22 职场文书
开除通知书范本
2015/04/25 职场文书
毛主席纪念堂观后感
2015/06/17 职场文书
Java时间工具类Date的常用处理方法
2022/05/25 Java/Android