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过滤函数filter()使用自定义函数过滤序列实例
Aug 26 Python
详解Python的Flask框架中的signals信号机制
Jun 13 Python
Python实现拷贝/删除文件夹的方法详解
Aug 29 Python
解决webdriver.Chrome()报错:Message:'chromedriver' executable needs to be in Path
Jun 12 Python
Pandas之排序函数sort_values()的实现
Jul 09 Python
python监控进程状态,记录重启时间及进程号的实例
Jul 15 Python
python实现画出e指数函数的图像
Nov 21 Python
Pytorch之Variable的用法
Dec 31 Python
Python生成器常见问题及解决方案
Mar 21 Python
python实现最速下降法
Mar 24 Python
基于python实现可视化生成二维码工具
Jul 08 Python
Python可视化神器pyecharts绘制水球图
Jul 07 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
一些PHP写的小东西
2006/12/06 PHP
php preg_filter执行一个正则表达式搜索和替换
2012/02/27 PHP
解决PHP超大文件下载,断点续传下载的方法详解
2013/06/06 PHP
php小经验:解析preg_match与preg_match_all 函数
2013/06/29 PHP
nginx+thinkphp下解决不支持pathinfo模式
2015/07/01 PHP
PHP切割汉字的常用方法实例总结
2019/04/27 PHP
tp5框架内使用tp3.2分页的方法分析
2019/05/05 PHP
laravel 框架执行流程与原理简单分析
2020/02/01 PHP
JavaScript高级程序设计 阅读笔记(四) ECMAScript中的类型转换
2012/02/27 Javascript
Javascript中string转date示例代码
2013/11/01 Javascript
Js表格万条数据瞬间加载实现代码
2014/02/20 Javascript
js判断页面中是否有指定控件的简单实例
2014/03/04 Javascript
JavaScript将XML转成JSON的方法
2015/03/12 Javascript
Jquery实现弹性滑块滑动选择数值插件
2015/08/08 Javascript
Java遍历集合方法分析(实现原理、算法性能、适用场合)
2016/04/25 Javascript
jQuery新窗口打开外链接
2016/07/21 Javascript
轻松掌握JavaScript中介者模式
2016/08/26 Javascript
bootstrap table实现x-editable的行单元格编辑及解决数据Empty和支持多样式问题
2017/08/10 Javascript
关于Promise 异步编程的实例讲解
2017/09/01 Javascript
浅谈Angular2 模块懒加载的方法
2017/10/04 Javascript
nodejs环境使用Typeorm连接查询Oracle数据
2019/12/05 NodeJs
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
python复制文件代码实现
2013/12/23 Python
python重试装饰器示例
2014/02/11 Python
Python基于列表list实现的CRUD操作功能示例
2018/01/05 Python
Python面向对象class类属性及子类用法分析
2018/02/02 Python
python 猴子补丁(monkey patch)
2019/06/26 Python
python如何设置静态变量
2020/09/07 Python
美国最大的半成品净菜电商:Blue Apron(蓝围裙)
2018/04/27 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
最新的大学生找工作自我评价
2013/09/29 职场文书
小学阳光体育活动总结
2014/07/05 职场文书
2014年房地产工作总结范文
2014/11/19 职场文书
经典搞笑版检讨书
2015/02/19 职场文书
Apache Hudi的多版本清理服务彻底讲解
2022/03/31 Servers