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选择排序算法的实现代码
Nov 21 Python
python和C语言混合编程实例
Jun 04 Python
解决pip install的时候报错timed out的问题
Jun 12 Python
Python使用pandas处理CSV文件的实例讲解
Jun 22 Python
Python 访问限制 private public的详细介绍
Oct 16 Python
对Python模块导入时全局变量__all__的作用详解
Jan 11 Python
在Python文件中指定Python解释器的方法
Feb 18 Python
python中报错"json.decoder.JSONDecodeError: Expecting value:"的解决
Apr 29 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
基于Python3读写INI配置文件过程解析
Jul 23 Python
图解Python中深浅copy(通俗易懂)
Sep 03 Python
Python竟然能剪辑视频
May 25 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版(3)
2006/10/09 PHP
php mail to 配置详解
2014/01/16 PHP
PHP开启opcache提升代码性能
2015/04/26 PHP
Javascript中的异步编程规范Promises/A详细介绍
2014/06/06 Javascript
使用javascript实现判断当前浏览器
2015/04/14 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
jQuery插件pagewalkthrough实现引导页效果
2015/07/05 Javascript
jQuery插件windowScroll实现单屏滚动特效
2015/07/14 Javascript
使用JS正则表达式 替换括号,尖括号等
2016/11/29 Javascript
JS数组排序方法实例分析
2016/12/16 Javascript
如何制作幻灯片(代码分享)
2017/01/06 Javascript
Easyui笔记2:实现datagrid多行删除的示例代码
2017/01/14 Javascript
JS实现模糊查询带下拉匹配效果
2018/06/21 Javascript
微信小程序五子棋游戏AI实现方法【附demo源码下载】
2019/02/20 Javascript
微信小程序学习笔记之表单提交与PHP后台数据交互处理图文详解
2019/03/28 Javascript
vue-cli脚手架打包静态资源请求出错的原因与解决
2019/06/06 Javascript
微信小程序国际化探索实现(附源码地址)
2020/05/20 Javascript
[03:42]2014DOTA2西雅图国际邀请赛 Navi战队巡礼
2014/07/07 DOTA
编写简单的Python程序来判断文本的语种
2015/04/07 Python
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Python中List.count()方法的使用教程
2015/05/20 Python
Python编程对列表中字典元素进行排序的方法详解
2017/05/26 Python
Python实现的井字棋(Tic Tac Toe)游戏示例
2018/01/31 Python
浅谈python中字典append 到list 后值的改变问题
2018/05/04 Python
python实现简易动态时钟
2018/11/19 Python
python中web框架的自定义创建
2019/09/08 Python
python数据分析工具之 matplotlib详解
2020/04/09 Python
Django Form常用功能及代码示例
2020/10/13 Python
重构Python代码的六个实例
2020/11/25 Python
K近邻法(KNN)相关知识总结以及如何用python实现
2021/01/28 Python
CSS3实现彩色进度条动画的示例
2020/10/29 HTML / CSS
三只松鼠官方旗舰店:全网坚果销售第1
2017/11/25 全球购物
房屋买卖协议书范本
2014/04/10 职场文书
CSS 圆形进度栏
2021/04/06 HTML / CSS
Python实现单例模式的5种方法
2021/06/15 Python
自动在Windows中运行Python脚本并定时触发功能实现
2021/09/04 Python