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 相关文章推荐
phpsir 开发 一个检测百度关键字网站排名的python 程序
Sep 17 Python
python使用xmlrpc实例讲解
Dec 17 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
在Python的Django框架中创建和使用模版
Jul 15 Python
十分钟利用Python制作属于你自己的个性logo
May 07 Python
Django如何开发简单的查询接口详解
May 17 Python
解决Python安装时报缺少DLL问题【两种解决方法】
Jul 15 Python
django mysql数据库及图片上传接口详解
Jul 18 Python
Django和Flask框架优缺点对比
Oct 24 Python
Python中sorted()排序与字母大小写的问题
Jan 14 Python
python实现最短路径的实例方法
Jul 19 Python
Python爬取酷狗MP3音频的步骤
Feb 26 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 fsockopen写的HTTP下载的类
2007/02/22 PHP
Yii框架form表单用法实例
2014/12/04 PHP
PHP获取二叉树镜像的方法
2018/01/17 PHP
PHP程序员简单的开展服务治理架构操作详解(一)
2020/05/14 PHP
ExtJs 表单提交登陆实现代码
2010/08/19 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
angularJS中router的使用指南
2015/02/09 Javascript
分享一个自己写的简单的javascript分页组件
2015/02/15 Javascript
js实现背景图片感应鼠标变化的方法
2015/02/28 Javascript
jQuery多文件异步上传带进度条实例代码
2016/08/16 Javascript
js 判断附件后缀的简单实现方法
2016/10/11 Javascript
完美实现js选项卡切换效果(一)
2017/03/08 Javascript
使用ngrok+express解决本地环境中微信接口调试问题
2018/02/26 Javascript
给localStorage设置一个过期时间的方法分享
2018/11/06 Javascript
thinkjs微信中控之微信鉴权登陆的实现代码
2019/08/08 Javascript
vue 自动化路由实现代码
2019/09/03 Javascript
layui默认选中table的CheckBox复选框方法
2019/09/19 Javascript
react PropTypes校验传递的值操作示例
2020/04/28 Javascript
[02:30]DOTA2放量测试专访海涛:呼吁保护新手玩家
2013/08/26 DOTA
[03:22]DAC最前线(第二期)—DOTA2亚洲邀请赛主赛场周边及线路探访
2015/01/24 DOTA
Python 冒泡,选择,插入排序使用实例
2015/02/05 Python
Cpy和Python的效率对比
2015/03/20 Python
详解K-means算法在Python中的实现
2017/12/05 Python
python实现简单井字棋游戏
2020/03/04 Python
pyecharts调整图例与各板块的位置间距实例
2020/05/16 Python
CSS3伪类选择器:nth-child()
2009/04/02 HTML / CSS
美国职棒大联盟官方网上商店:MLBShop.com
2017/11/12 全球购物
体育纪念品、亲笔签名的体育收藏品:Steiner Sports
2020/07/31 全球购物
实习自我评价怎么写
2013/12/02 职场文书
党支部对照检查材料
2014/08/25 职场文书
生物工程专业求职信
2014/09/03 职场文书
湖南省召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
计划生育工作汇报
2014/10/28 职场文书
先进个人自荐书
2015/03/06 职场文书
检察院起诉书
2015/05/20 职场文书
化验室安全管理制度
2015/08/06 职场文书