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 相关文章推荐
python3.0 字典key排序
Dec 24 Python
python中模块查找的原理与方法详解
Aug 11 Python
vscode 远程调试python的方法
Dec 01 Python
python使用pil库实现图片合成实例代码
Jan 20 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
python爬虫模拟浏览器访问-User-Agent过程解析
Dec 28 Python
Python通过socketserver处理多个链接
Mar 18 Python
解决Django部署设置Debug=False时xadmin后台管理系统样式丢失
Apr 07 Python
200行python代码实现贪吃蛇游戏
Apr 24 Python
Python发送邮件封装实现过程详解
May 09 Python
python实例化对象的具体方法
Jun 17 Python
python 实现百度网盘非会员上传超过500个文件的方法
Jan 07 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分页类
2013/10/26 PHP
Thinkphp3.2.3分页使用实例解析
2016/07/28 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
细品javascript 寻址,闭包,对象模型和相关问题
2009/04/27 Javascript
jQuery的链式调用浅析
2010/12/03 Javascript
更换select下拉菜单背景样式的实现代码
2011/12/20 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
jq stop()和:is(:animated)的用法及区别(详解)
2017/02/12 Javascript
Vuejs实现购物车功能
2017/11/05 Javascript
Vue+Vux项目实践完整代码
2017/11/30 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
js html实现计算器功能
2018/11/13 Javascript
jquery3和layui冲突导致使用layui.layer.full弹出全屏iframe窗口时高度152px问题
2019/05/12 jQuery
JS回调函数 callback的理解与使用案例分析
2019/09/09 Javascript
如何换个角度使用VUE过滤器详解
2019/09/11 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
python实现每次处理一个字符的三种方法
2014/10/09 Python
python使用sorted函数对列表进行排序的方法
2015/04/04 Python
Python3中简单的文件操作及两个简单小实例分享
2017/06/18 Python
python循环定时中断执行某一段程序的实例
2019/06/29 Python
手把手教你安装Windows版本的Tensorflow
2020/03/26 Python
Python3实现飞机大战游戏
2020/04/24 Python
python 异步async库的使用说明
2020/05/04 Python
pytorch中的weight-initilzation用法
2020/06/24 Python
Python-openpyxl表格读取写入的案例详解
2020/11/02 Python
利用python绘制正态分布曲线
2021/01/04 Python
使用Python快速打开一个百万行级别的超大Excel文件的方法
2021/03/02 Python
移动HTML5前端框架—MUI的使用
2017/12/18 HTML / CSS
Europcar西班牙:全球汽车租赁领域的领导者
2018/09/17 全球购物
Gloeilampgoedkoop荷兰:在线购买灯泡
2019/02/16 全球购物
STP的判定过程
2012/10/01 面试题
C#和SQL Server的面试题
2016/08/12 面试题
超市商业计划书
2014/05/04 职场文书
2015年办公室文员工作总结
2015/04/24 职场文书
ubuntu如何搭建vsftpd服务器
2022/12/24 Servers