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发送邮件实例
Jan 10 Python
Python实现约瑟夫环问题的方法
May 03 Python
对python多线程中Lock()与RLock()锁详解
Jan 11 Python
浅析python的Lambda表达式
Feb 27 Python
pycharm访问mysql数据库的方法步骤
Jun 18 Python
Python帮你微信头像任意添加装饰别再@微信官方了
Sep 25 Python
在keras里实现自定义上采样层
Jun 28 Python
浅谈Python里面None True False之间的区别
Jul 09 Python
python实现数字炸弹游戏
Jul 17 Python
用pandas划分数据集实现训练集和测试集
Jul 20 Python
python爬虫要用到的库总结
Jul 28 Python
django使用多个数据库的方法实例
Mar 04 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命令行使用方法和命令行参数说明
2014/04/08 PHP
不使用php api函数实现数组的交换排序示例
2014/04/13 PHP
兼容PHP和Java的des加密解密代码分享
2014/06/26 PHP
PHP基本语法总结
2014/09/06 PHP
PHP开发之归档格式phar文件概念与用法详解【创建,使用,解包还原提取】
2017/11/17 PHP
关于PHP中interface的用处详解
2020/07/26 PHP
Javascript 页面模板化很多人没有使用过的方法
2012/06/05 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
jQuery焦点图插件SaySlide
2015/12/21 Javascript
浅谈JavaScript的计时器对象
2016/12/26 Javascript
详解vue-admin和后端(flask)分离结合的例子
2018/02/12 Javascript
jQuery实现鼠标响应式透明度渐变动画效果示例
2018/02/13 jQuery
在JavaScript中如何访问暂未存在的嵌套对象
2019/06/18 Javascript
Vue.js中的extend绑定节点并显示的方法
2019/06/20 Javascript
使用Vue实现简单计算器
2020/02/25 Javascript
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
Django 使用logging打印日志的实例
2018/04/28 Python
Python OpenCV读取png图像转成jpg图像存储的方法
2018/10/28 Python
Python基于Tkinter模块实现的弹球小游戏
2018/12/27 Python
Python开启线程,在函数中开线程的实例
2019/02/22 Python
Python中dict和set的用法讲解
2019/03/28 Python
Django组件cookie与session的具体使用
2019/06/05 Python
python识别图像并提取文字的实现方法
2019/06/28 Python
python生成并处理uuid的实现方式
2020/03/03 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
python解包用法详解
2021/02/17 Python
css3个性化字体_动力节点Java学院整理
2017/07/12 HTML / CSS
CSS3 圆角效果
2009/07/15 HTML / CSS
利用css3实现的简单的鼠标悬停按钮
2014/11/04 HTML / CSS
htmlentities() 和 htmlspecialchars()有什么区别
2015/07/01 面试题
银行演讲稿范文
2014/01/03 职场文书
酒店优秀员工事迹材料
2014/06/02 职场文书
城市创卫标语
2014/06/17 职场文书
商务宴请邀请函范文
2015/02/02 职场文书
Java8中Stream的一些神操作
2021/11/02 Java/Android