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使用tkinter实现ui界面简单实例
Jan 10 Python
跟老齐学Python之再深点,更懂list
Sep 20 Python
跟老齐学Python之模块的加载
Oct 24 Python
操作Windows注册表的简单的Python程序制作教程
Apr 07 Python
Python记录详细调用堆栈日志的方法
May 05 Python
Python数据分析中Groupby用法之通过字典或Series进行分组的实例
Dec 08 Python
Django ORM 自定义 char 类型字段解析
Aug 09 Python
如何更改 pandas dataframe 中两列的位置
Dec 27 Python
Python常见反爬虫机制解决方案
Jun 01 Python
Python实现加密的RAR文件解压的方法(密码已知)
Sep 11 Python
python 命令行传参方法总结
May 25 Python
pytorch model.cuda()花费时间很长的解决
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
php结合curl实现多线程抓取
2015/07/09 PHP
PHP将身份证正反面两张照片合成一张图片的代码
2017/04/08 PHP
深入理解JavaScript定时机制
2010/10/29 Javascript
使用jQuery解决IE与FireFox下createElement方法的差异
2013/11/14 Javascript
JS在IE下缺少标识符的错误
2014/07/23 Javascript
IE浏览器IFrame对象内存不释放问题解决方法
2014/08/22 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
关于JS中prototype的理解
2015/09/07 Javascript
js右下角弹出提示框示例代码
2016/01/12 Javascript
Bootstrap中文本框的宽度变窄并且加入一副验证码图片的实现方法
2016/06/23 Javascript
JS弹出新窗口被拦截的解决方法
2016/08/09 Javascript
详解AngularJs中$resource和restfu服务端数据交互
2016/09/21 Javascript
vue.js中$watch的用法示例
2016/10/04 Javascript
使用Angular.js开发的注意事项
2016/10/19 Javascript
微信小程序之选项卡的实现方法
2017/09/29 Javascript
JS使用new操作符创建对象的方法分析
2019/05/30 Javascript
解决layui轮播图有数据不显示的情况
2019/09/16 Javascript
vue+element-ui表格封装tag标签使用插槽
2020/06/18 Javascript
vue 自定指令生成uuid滚动监听达到tab表格吸顶效果的代码
2020/09/16 Javascript
[00:52]DOTA2齐天大圣预告片
2016/08/13 DOTA
在Python的Flask框架中实现单元测试的教程
2015/04/20 Python
Python守护进程用法实例分析
2015/06/04 Python
详解Python中的Descriptor描述符类
2016/06/14 Python
浅析Python的web.py框架中url的设定方法
2016/07/11 Python
tensorflow实现逻辑回归模型
2018/09/08 Python
Python3的介绍、安装和命令行的认识(推荐)
2018/10/20 Python
PyQt QListWidget修改列表项item的行高方法
2019/06/20 Python
linux环境下安装python虚拟环境及注意事项
2020/01/07 Python
房屋租赁协议书
2014/04/10 职场文书
学校安全责任书范本
2014/07/23 职场文书
员工工作及收入证明
2014/10/28 职场文书
2014离婚协议书范文(3篇)
2014/11/29 职场文书
走进毛泽东观后感
2015/06/04 职场文书
《月光曲》教学反思
2016/02/16 职场文书
SqlServer: 如何更改表的文件组?(进而改变存储位置)
2021/04/05 SQL Server
Spring Boot 实现敏感词及特殊字符过滤处理
2021/06/29 Java/Android