python字节流处理_Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
问题描述
最近做一个项目,是用Python进行相关的串口操作。及将相关指令通过串口发给设备,设备根据发过来的指令来做出相应的操作,所用的库是Pyserial。在最初开发时,出现的问题在于:别人给的文档里面的命令是十六进制的。例如,给出一个指令:
5aa5 07 82 1000 3132 3334 。 那么,我们需要思考的是,我们如何将上面的指令,转换为pyserial库进行写操作时(write)所需要的bytes类型。
解决方法
首先,我们需要知道的是,我们首先,需要用字符串构造成上面的指令,然后我们将它转换成bytes。我们可以使用encode()函数将字符串转为bytes格式:
然后我们就可以使用write对串口进行发数据了:
这里需要说明的是,我们发送的是字符串的1234,串口那边就根据ascii进行解析。所以就变成了 31 32 33 34。
接下来,再来更换一个场景,我们构造好了一个十六进制的bytes,需要将它还原成字符串:
解析串口发过来的数据,首先我们查看从串口发过来的数据格式:
可以看到,我们发送的指令,和收到的指令,看起来不一致,那么我们也就无法进行调试,也就无法查看发过来的指令是否有错误,所以,我们需要对接收到的指令进行转换。
可以看到,我们通过binascii中的函数,对发送过来的数据进行转换,转换成了我们能够看看懂的命令字符串。
接下来,我们如何将收到的命令,转换为文字?例如,我们收到了一串bytes,如果将它转换为明文?
如上图,我们将收到的bytes已经转换成了字符串格式,然后将里面的31 32 33 34提取出来,然后,我们将它们放入一个数组,经过上面的运算以后,我们就得到了明文数据。
如何将十六进制转换为字节流?
上述两个方法均可。
总结
由于对上述的知识点不是特别熟悉,所以表述可能有一定的混乱。当初想实现上述几点功能时也费了很大的劲,所以才写在这里供以后后续使用。后来者进行学习时,无需仔细看文字,只需要看图片,了解前后数据类型的转化成什么样,是否符合自己的需求即可。
补充知识:python中字符之间的转换函数
int(x [,base ]) 将x转换为一个整数
long(x [,base ]) 将x转换为一个长整数
base默认参数值为10,也就是说把字符串"x"视为十进制数转换成十进制数
print int("12345",8) # 5349
float(x ) 将x转换到一个浮点数
complex(real [,imag ]) 创建一个复数
str(x ) 将对象 x 转换为字符串
repr(x ) 将对象 x 转换为表达式字符串
eval(str ) 用来计算在字符串中的有效Python表达式,并返回一个对象
tuple(s ) 将序列 s 转换为一个元组
list(s ) 将序列 s 转换为一个列表
chr(x ) 将一个整数转换为一个字符
unichr(x ) 将一个整数转换为Unicode字符
ord(x ) 将一个字符转换为它的整数值
hex(x ) 将一个整数转换为一个十六进制字符串
oct(x ) 将一个整数转换为一个八进制字符串
以上这篇Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持云海天教程。
python字节流处理_Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)相关推荐
- python字节流分割_Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)
问题描述 最近做一个项目,是用Python进行相关的串口操作.及将相关指令通过串口发给设备,设备根据发过来的指令来做出相应的操作,所用的库是Pyserial.在最初开发时,出现的问题在于:别人给的文档 ...
- python字节流分割_python字节流处理
Python模块--struct(字节流,组包拆包实现) (2009-09-23 21:45:30) 标签:python struct 字符串 a2 format it 分类:Python 我们知道p ...
- python字节流转换_python字节流怎么转化成图片
因为图片在传输的过程中,不太方便,所以使用base64进行转换形式,来传输. 首先把图片转为字节流,进行传输,接受到数据后,在把字节转换为图片进行生成(推荐学习:Python视频教程) 图片转字节流i ...
- [转载] python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解
参考链接: Python字符串| rfind python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in ...
- python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解
python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in s: print j 首先一个,你这个'a'是 ...
- python里str什么意思_Python 3 字符串中的 STR 和 Bytes 究竟有什么区别?
原标题:Python 3 字符串中的 STR 和 Bytes 究竟有什么区别? Python2的字符串有两种:str和Unicode,Python3的字符串也有两种:str和Bytes.Python2 ...
- python单词反转_python文本 字符串逐字符反转以及逐单词反转
python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>& ...
- python结构体_Python实现结构体代码实例
Python实现结构体代码实例 这篇文章主要介绍了Python实现结构体代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # python 使 ...
- Python 字节流、字符串、十六进制相互转换(binascii、bytes)
问题描述 最近做一个项目,是用Python进行相关的串口操作.及将相关指令通过串口发给设备,设备根据发过来的指令来做出相应的操作,所用的库是Pyserial.在最初开发时,出现的问题在于:别人给的文档 ...
最新文章
- C#中[WebMethod]的用法,aspx、ashx、asmx
- 【Flask】ORM高级操作之排序和分页操作
- 【干货】这10个Liunx命令能提高50%的工作效率
- 跟随我在oracle学习php(14)
- iOS攻防——(四)class-dump-与-Dumpdecrypted-使用
- aop简介-aop的底层实现
- BSP UI Workbench double click component and see view list
- 17 | 跳表:为什么Redis一定要用跳表来实现有序集合?
- Ripro主题角标美化
- 深入分析八种前景看好的物联网业务形态
- 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件怎么样
- 个人作业-软件产品案例分析
- maven构建ssm工程
- linux定时执行脚本
- python 生成 exe
- 如何修改steam中dota服务器,STEAM玩刀塔自走棋如何设置_STEAM玩刀塔自走棋教程_玩游戏网...
- 手机html像素,手机分辨率和网页中的PX是一回事吗?
- 删除文件时提示:无法读源文件或磁盘之解决办法
- 可以同情弱者,别同情弱势!
- cf C. Counting Kangaroos is Fun
热门文章
- docker-compose是干什么的?
- 公布13年年报的股票中,个人进入前十大流通股东的股东一览。 截止2014年03月13日
- 思科Catalyst 9K
- Linux paramiko模块以及公钥私钥
- java中sql查询语句_JAVA中用 SQL语句操作小结
- java批量执行查询sql语句_如何从Java执行多个SQL语句
- 05-linux日志管理-04-journalctl 命令(查询、日志清理、大小限制)
- 博士申请 | 新加坡国立大学Robby T. Tan教授招收CV方向全奖博士/博后/访问学生
- Java必看电子书,从小白到大神一网打尽免费送
- python 加密库_Python加密库入门