python3 python2 字符串与hex互转区别
反复在几个环境上折腾码流的拼装解析和可读化打印,总是遇到hex字符串和bytes之间的转换,记录在这里吧。
1. 在Python2.7.x上(更老的环境真心折腾不起),hex字符串和bytes之间的转换是这样的:
>>> a = 'aabbccddeeff'
>>> a_bytes = a.decode('hex')
>>> print(a_bytes)
b'\xaa\xbb\xcc\xdd\xee\xff'
>>> aa = a_bytes.encode('hex')
>>> print(aa)
aabbccddeeff
>>>
在python 3环境上,因为string和bytes的实现发生了重大的变化,这个转换也不能再用encode/decode完成了。
2.在python3.5之前,这个转换的其中一种方式是这样的:
# 当字符串是全部是十六进制的数字字母时 此方可可行
>>> a = 'aabbccddeeff'
>>> a_bytes = bytes.fromhex(a)
>>> print(a_bytes)
b'\xaa\xbb\xcc\xdd\xee\xff'
>>> aa = ''.join(['%02x' % b for b in a_bytes])
>>> print(aa)
aabbccddeeff
>>># 当字符串不是十六进制的数字字母时 此方法可行
>>> a = 'hello'
>>> a_bytes =bytes(a,encoding='utf8')
>>> a_bytes =''.join(['\\x%02X' % b for b in a_bytes ])
>>> print(a_bytes)
\x68\x65\x6C\x6C\x6F
3.到了python 3.5之后,就可以像下面这么干了:
# 当字符串是全部是十六进制的数字字母时 此方可可行
>>> a = 'aabbccddeeff'
>>> a_bytes = bytes.fromhex(a)
>>> print(a_bytes)
b'\xaa\xbb\xcc\xdd\xee\xff'
>>> aa = a_bytes.hex()
>>> print(aa)
aabbccddeeff
>>># 当字符串不是十六进制的数字字母时 此方法可行
>>> a = 'hello'
>>> a_bytes =bytes(a,encoding='utf8')
>>> a_bytes =''.join(['\\x%02X' % b for b in a_bytes ])
>>> print(a_bytes)
\x68\x65\x6C\x6C\x6F
python3 python2 字符串与hex互转区别相关推荐
- php7和python3性能对比-python2.7和3.7的区别
区别一:print语法使用 Python2.7 print语法使用 >>> print "Hello Python" Python3.7 print语法使用 &g ...
- Python3 字符串与hex之间的相互转换
在字符串转换上,python2和python3是不同的,在查看一些python2的脚本时候,总是遇到字符串与hex之间之间的转换出现问题,记录一下解决方法. 1. 在Python2.7.x上,hex字 ...
- 一篇文章助你理解Python3中字符串编码问题
前几天给大家介绍了unicode编码和utf-8编码的理论知识,以及Python2中字符串编码问题,没来得及上车的小伙伴们可以戳这篇文章:浅谈unicode编码和utf-8编码的关系和一篇文章助你理解 ...
- python2字符串编码方式_一、基础部分-2.字符串编码
一.字符编码历史 1. ASCII 美国人搞了个ASCII码表,把123abcABC%$#(数字.字母.特殊符号) ,全部用10进制的数字表示.例如数字65,代表着"A" ,ASC ...
- python3.0与2.x之间的区别
python3.0与2.x之间的区别: 1.性能 Py3.0运行pystone benchmark的速度比Py2.5慢30%.Guido认为Py3.0有极大的优化空间,在字符串和整形操作上可以取得很好 ...
- ubuntu python3.7修改默认pip版本_详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本 安装python3后使用pip和pip3的区别...
Python3.4已经默认安装了pip为什么执行不了我的谁说过,念念不忘就该放.但我也记得你说过,爱一个人不是一天两天的事. 如何升级到python3版本并且安装pip3 确保你的系统上已经安装好了 ...
- Python中字符串和二进制互转
Python中字符串和二进制互转 最近在搞图形相关的东西,有时候操作涉及到每个 比特 的操作,所以必须实现一个方法(将字符串二值化),就是把字符串转换成为二进制形式.搜索了一些相关的实现,但是本篇只对 ...
- 十六进制字符串与中文互转
十六进制字符串与中文互转 前言:有时候在做数据分析的时候会遇到一些二进制数据文件或者在进行tcp/udp通信的时候经常需要把数据转化成字节数据,其中包含了中文数据,但网上查找半天不知道怎么去解析这些数 ...
- python3 format函数_Python学习教程:Python3之字符串格式化format函数详解(上)
Python学习教程:Python3之字符串格式化format函数详解(上) 概述 在Python3中,字符串格式化操作通过format()方法或者f'string'实现.而相比于老版的字符串格式化方 ...
最新文章
- 使用jQuery操作DOM
- Build Docker image of a Python Flask app【转载】
- MySQL查询时通过修改字段的排序规则来忽略大小写的操作讲解
- 微信多开工具 可以同时在电脑上打开多个微信 免费开源
- Linux I/O复用之select函数详解
- 安装ARM交叉编译工具
- 教你在 CentOS 8上安装GCC实现开发编译功能
- [解决方案]Window 2008 R2 + IIS7.5 + VS2013 错误代码 0x80070002
- 爬虫项目——m3u8后缀的电影
- Android qemu pipe高速管道(九)
- CreateProcess()无法启动应用?
- oracle _db_block_write_batch,Oracle体系结构----实例的进程结构
- css中关于旋转属性trtransform: rotate影响文字轻微变形的解决办法。
- 使用CSS实现图片叠加效果
- 十大管理概念(背诵)
- Android6.0M权限管理实战,完美轻量级封装
- 学计算机的心理300字,心理作文300字3篇
- 人工智能正在改变音乐产业
- audio音频播放标签样式优化自定义
- 中国互联网公司都要国际化,美图如何成为出海的另类?