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之入门(三)序列
May 25 Python
python生成日历实例解析
Aug 21 Python
简述:我为什么选择Python而不是Matlab和R语言
Nov 14 Python
python中将字典形式的数据循环插入Excel
Jan 16 Python
Python读取系统文件夹内所有文件并统计数量的方法
Oct 23 Python
机器学习实战之knn算法pandas
Jun 22 Python
Python 实现判断图片格式并转换,将转换的图像存到生成的文件夹中
Jan 13 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
Feb 21 Python
python 使用cx-freeze打包程序的实现
Mar 14 Python
django实现将修改好的新模型写入数据库
Mar 31 Python
Python Opencv中用compareHist函数进行直方图比较对比图片
Apr 07 Python
浅析Python实现DFA算法
Jun 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
phpmyadmin 访问被拒绝的真实原因
2009/06/15 PHP
PHPAnalysis中文分词类详解
2014/06/13 PHP
php中session与cookie的比较
2015/01/27 PHP
php中 $$str 中 "$$" 的详解
2015/07/06 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
php 修改上传文件大小限制实例详解
2016/10/23 PHP
PHP单例模式应用示例【多次连接数据库只实例化一次】
2018/12/18 PHP
javascript:以前写的xmlhttp池,代码
2008/05/18 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
在模板页面的js使用办法
2010/04/01 Javascript
JavaScript中的迭代器和生成器详解
2014/10/29 Javascript
JS实现的跨浏览器解析XML文件实例
2016/06/21 Javascript
js实现消息滚动效果
2017/01/18 Javascript
jQuery编写textarea输入字数限制代码
2017/03/23 jQuery
vue todo-list组件发布到npm上的方法
2018/04/04 Javascript
JavaScript进阶(一)变量声明提升实例分析
2020/05/09 Javascript
JS实现斐波那契数列的五种方式(小结)
2020/09/09 Javascript
[05:35]DOTA2英雄梦之声_第13期_拉比克
2014/06/21 DOTA
Python中删除文件的程序代码
2011/03/13 Python
python数据结构之二叉树的建立实例
2014/04/29 Python
使用python实现正则匹配检索远端FTP目录下的文件
2015/03/25 Python
python的numpy模块安装不成功简单解决方法总结
2017/12/23 Python
tensorflow入门之训练简单的神经网络方法
2018/02/26 Python
python 字典中文key处理,读取,比较方法
2018/07/06 Python
Python实现的排列组合、破解密码算法示例
2019/04/12 Python
python开发游戏的前期准备
2019/05/05 Python
Django 全局的static和templates的使用详解
2019/07/19 Python
详解pandas绘制矩阵散点图(scatter_matrix)的方法
2020/04/23 Python
Python3如何使用多线程升程序运行速度
2020/08/11 Python
HTML5中的postMessage API基本使用教程
2016/05/20 HTML / CSS
详解window.open被浏览器拦截的解决方案
2019/07/18 HTML / CSS
Footshop法国:购买运动鞋
2020/01/19 全球购物
矿泉水广告词
2014/03/20 职场文书
党性观念心得体会
2014/09/03 职场文书
毕业论文致谢范文
2015/05/14 职场文书
【海涛DOTA】D-cup邀请赛NV.cn vs DT.Love
2022/04/01 DOTA