Python实现将16进制字符串转化为ascii字符的方法分析


Posted in Python onJuly 21, 2017

本文实例讲述了Python实现将16进制字符串转化为ascii字符的方法。分享给大家供大家参考,具体如下:

字符串456e633064316e675f31735f66336e,通过Python,按照两个字符,例如45,6e,63形式变成ascii码格式,输出acsii码格式的字符串。

代码如下:

a = "456e633064316e675f31735f66336e"
''.join([chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]])

拆分了代码,实际运行了一下,解释一下代码的意思:

1、

[a[i:i+2] for i in range(0, len(a), 2)]

这段是lamda表达式,说白了,就是一个for循环,范围是从0开始到a字符串的长度,每次步进2,也就是第一次是0,第二次是2,第三次是4。。。

相应的 a[i:i+2],就是第一次从a里取出0:0+2 也就是0:2,那么实际上类似于数组,也就是取出a字符串的前面2个字符,注意这里0:2 实际上是不包含2的,只是0、1而已。

然后,外面的一层[ ]的意思就是把循环的返回结果放到一个 列表里,列表就是[]包含在内的,用逗号分隔的串。但是这样表达式可以起到简化代码的作用。

实际结果就是:

======================== C:\c - 副本 (2).py ========================
['45', '6e', '63', '30', '64', '31', '6e', '67', '5f', '31', '73', '5f', '66', '33', '6e']

2、

[chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]]

这个外层的for循环就是把内存的for循环结果 :

['45', '6e', '63', '30', '64', '31', '6e', '67', '5f', '31', '73', '5f', '66', '33', '6e']

再次遍历一遍,就是每次从这个列表里取出一个元素,这里就是b,然后对b进行转化,这里int(b,16)表示 b是一个16进制的数字,把这个数字转化为int整型,然后chr函数把这个整数转化为字符,也就是ascii字符。

结果为:

['E', 'n', 'c', '0', 'd', '1', 'n', 'g', '_', '1', 's', '_', 'f', '3', 'n']

3、

''.join([chr(int(b, 16)) for b in [a[i:i+2] for i in range(0, len(a), 2)]])

就是用‘'空串,把后面的 ['E', 'n', 'c', '0', 'd', '1', 'n', 'g', '_', '1', 's', '_', 'f', '3', 'n'] 列表中的每个元素,join串联在一起。

最后的结果就是:Enc0d1ng_1s_f3n

4、另一种写法

a = "456e633064316e675f31735f66336e"
al = []
for i in range(0, len(a), 2):
  b = a[i:i+2]
  al.append(chr(int(b, 16)))
print ''.join(al)
Python 相关文章推荐
python中遍历文件的3个方法
Sep 02 Python
利用Python为iOS10生成图标和截屏
Sep 24 Python
使用python读取csv文件快速插入数据库的实例
Jun 21 Python
Python不使用int()函数把字符串转换为数字的方法
Jul 09 Python
对Python中plt的画图函数详解
Nov 07 Python
Windows下PyCharm2018.3.2 安装教程(图文详解)
Oct 24 Python
Tensorflow 模型转换 .pb convert to .lite实例
Feb 12 Python
python+opencv3生成一个自定义纯色图教程
Feb 19 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
Jun 30 Python
python连接mongodb数据库操作数据示例
Nov 30 Python
分享unittest单元测试框架中几种常用的用例加载方法
Dec 02 Python
python unichr函数知识点总结
Dec 16 Python
windows下Python实现将pdf文件转化为png格式图片的方法
Jul 21 #Python
python僵尸进程产生的原因
Jul 21 #Python
python下载图片实现方法(超简单)
Jul 21 #Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
Jul 20 #Python
Python使用内置json模块解析json格式数据的方法
Jul 20 #Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
Jul 20 #Python
Python函数式编程
Jul 20 #Python
You might like
一台收音机,让一家人都笑逐颜开!
2020/08/21 无线电
php截取后台登陆密码的代码
2012/05/05 PHP
PHP采用超长(超大)数字运算防止数字以科学计数法显示的方法
2016/04/01 PHP
php利用递归实现删除文件目录的方法
2016/09/23 PHP
thinkphp5.1 框架导入/导出excel文件操作示例
2020/05/25 PHP
jquery 插件开发方法小结
2009/10/23 Javascript
JQuery 学习笔记01 JQuery初接触
2010/05/06 Javascript
Javascript中自动切换焦点实现代码
2012/12/15 Javascript
JQuery触发radio或checkbox的change事件
2012/12/18 Javascript
Bootstrap开发实战之第一次接触Bootstrap
2016/06/02 Javascript
原生js仿浏览器滚动条效果
2017/03/02 Javascript
jQuery插件HighCharts绘制的2D堆柱状图效果示例【附demo源码下载】
2017/03/14 Javascript
微信小程序 图片宽度自适应的实现
2017/04/06 Javascript
AngularJS实现的JSONP跨域访问数据传输功能详解
2017/07/20 Javascript
详解node服务器中打开html文件的两种方法
2017/09/18 Javascript
jQuery实现简单的回到顶部totop功能示例
2017/10/16 jQuery
vue router-link 默认a标签去除下划线的实现
2020/11/06 Javascript
python使用7z解压apk包的方法
2015/04/18 Python
Python中的ctime()方法使用教程
2015/05/22 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
关于django 数据库迁移(migrate)应该知道的一些事
2018/05/27 Python
复化梯形求积分实例——用Python进行数值计算
2019/11/20 Python
python3.6使用SMTP协议发送邮件
2020/05/20 Python
Python 中如何使用 virtualenv 管理虚拟环境
2021/01/21 Python
css3 clip实现圆环进度条的示例代码
2018/02/07 HTML / CSS
HTML5之SVG 2D入门9—蒙板及mask元素介绍与应用
2013/01/30 HTML / CSS
香港钟表珠宝首饰商城:OneMallTime网摩间
2016/10/14 全球购物
当我正在为表建立索引的时候,SQL Server 会禁止对表的访问吗
2014/04/28 面试题
数控专业大学生的自我鉴定
2013/11/13 职场文书
司机检讨书
2014/02/13 职场文书
高级编程求职信模板
2014/02/16 职场文书
小学数学教研活动总结
2014/07/01 职场文书
2014年保险公司工作总结
2014/11/22 职场文书
基层组织建设年活动总结
2015/05/09 职场文书
MySQL 自定义变量的概念及特点
2021/05/13 MySQL
javascript之Object.assign()的痛点分析
2022/03/03 Javascript