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中的With语句
Mar 18 Python
Python中你应该知道的一些内置函数
Mar 31 Python
一个基于flask的web应用诞生(1)
Apr 11 Python
浅谈python for循环的巧妙运用(迭代、列表生成式)
Sep 26 Python
python爬虫爬取淘宝商品信息
Feb 23 Python
实用自动化运维Python脚本分享
Jun 04 Python
Django实现单用户登录的方法示例
Mar 28 Python
在python中利用try..except来代替if..else的用法
Dec 19 Python
tensorflow入门:tfrecord 和tf.data.TFRecordDataset的使用
Jan 20 Python
python判断两个序列的成员是否一样的实例代码
Mar 01 Python
python实现同一局域网下传输图片
Mar 20 Python
ROS系统将python包编译为可执行文件的简单步骤
Jul 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递归算法和应用方法介绍
2013/04/15 PHP
PHP file_get_contents函数读取远程数据超时的解决方法
2015/05/13 PHP
php简单图像创建入门实例
2015/06/10 PHP
关于laravel5.5的定时任务详解(demo)
2019/10/23 PHP
Javascript中获取对象的原型对象的方法小结
2015/02/25 Javascript
浅谈Sizzle的“编译原理”
2015/04/14 Javascript
AngularJS基础知识笔记之表格
2015/05/10 Javascript
学习JavaScript设计模式(封装)
2015/11/26 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
2016/08/09 Javascript
jQuery Ajax请求后台数据并在前台接收
2016/12/10 Javascript
将angular.js项目整合到.net mvc中的方法详解
2017/06/29 Javascript
Vue实现将数据库中带html标签的内容输出(原始HTML(Raw HTML))
2019/10/28 Javascript
原生JS与JQ获取元素的区别详解
2020/02/13 Javascript
JS实现选项卡插件的两种写法(jQuery和class)
2020/12/30 jQuery
[01:00:52]2018DOTA2亚洲邀请赛 4.4 淘汰赛 EG vs LGD 第一场
2018/04/05 DOTA
python 接口_从协议到抽象基类详解
2017/08/24 Python
go和python变量赋值遇到的一个问题
2017/08/31 Python
Python简单实现socket信息发送与监听功能示例
2018/01/03 Python
python识别文字(基于tesseract)代码实例
2019/08/24 Python
python实现静态服务器
2019/09/05 Python
python虚拟环境模块venv使用及示例
2020/03/04 Python
Python 批量读取文件中指定字符的实现
2020/03/06 Python
StudentUniverse英国:学生航班、酒店和旅游
2019/08/25 全球购物
摩飞电器俄罗斯官方网站:Morphy Richards俄罗斯
2020/07/30 全球购物
Java语言程序设计测试题选择题部分
2014/04/03 面试题
教师推荐信范文
2013/11/24 职场文书
化学学院毕业生自荐信范文
2013/12/17 职场文书
办公室人员先进事迹
2014/01/27 职场文书
培训专员岗位职责
2014/02/26 职场文书
关于十八大的演讲稿
2014/09/15 职场文书
党员批评与自我批评(5篇)
2014/09/23 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
企业财务总监岗位职责
2015/04/03 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
详解Python中下划线的5种含义
2021/07/15 Python
php实现自动生成验证码的实例讲解
2021/11/17 PHP