问题描述

最近做一个项目,是用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)相关推荐

  1. python字节流分割_Python 字节流,字符串,十六进制相互转换实例(binascii,bytes)

    问题描述 最近做一个项目,是用Python进行相关的串口操作.及将相关指令通过串口发给设备,设备根据发过来的指令来做出相应的操作,所用的库是Pyserial.在最初开发时,出现的问题在于:别人给的文档 ...

  2. python字节流分割_python字节流处理

    Python模块--struct(字节流,组包拆包实现) (2009-09-23 21:45:30) 标签:python struct 字符串 a2 format it 分类:Python 我们知道p ...

  3. python字节流转换_python字节流怎么转化成图片

    因为图片在传输的过程中,不太方便,所以使用base64进行转换形式,来传输. 首先把图片转为字节流,进行传输,接受到数据后,在把字节转换为图片进行生成(推荐学习:Python视频教程) 图片转字节流i ...

  4. [转载] python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解

    参考链接: Python字符串| rfind python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in ...

  5. python 遍历字符串 字符_python 遍历字符串(含汉字)实例详解

    python 遍历字符串(含汉字)实例详解 python 遍历字符串(含汉字)实例详解 s = "中国china" for j in s: print j 首先一个,你这个'a'是 ...

  6. python里str什么意思_Python 3 字符串中的 STR 和 Bytes 究竟有什么区别?

    原标题:Python 3 字符串中的 STR 和 Bytes 究竟有什么区别? Python2的字符串有两种:str和Unicode,Python3的字符串也有两种:str和Bytes.Python2 ...

  7. python单词反转_python文本 字符串逐字符反转以及逐单词反转

    python文本 字符串逐字符反转以及逐单词反转 场景: 字符串逐字符反转以及逐单词反转 首先来看字符串逐字符反转,由于python提供了非常有用的切片,所以只需要一句就可以搞定了 >>& ...

  8. python结构体_Python实现结构体代码实例

    Python实现结构体代码实例 这篇文章主要介绍了Python实现结构体代码实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 # python 使 ...

  9. Python 字节流、字符串、十六进制相互转换(binascii、bytes)

    问题描述 最近做一个项目,是用Python进行相关的串口操作.及将相关指令通过串口发给设备,设备根据发过来的指令来做出相应的操作,所用的库是Pyserial.在最初开发时,出现的问题在于:别人给的文档 ...

最新文章

  1. C#中[WebMethod]的用法,aspx、ashx、asmx
  2. 【Flask】ORM高级操作之排序和分页操作
  3. 【干货】这10个Liunx命令能提高50%的工作效率
  4. 跟随我在oracle学习php(14)
  5. iOS攻防——(四)class-dump-与-Dumpdecrypted-使用
  6. aop简介-aop的底层实现
  7. BSP UI Workbench double click component and see view list
  8. 17 | 跳表:为什么Redis一定要用跳表来实现有序集合?
  9. Ripro主题角标美化
  10. 深入分析八种前景看好的物联网业务形态
  11. 杨凌职业技术学院计算机专业宿舍,杨凌职业技术学院宿舍条件怎么样
  12. 个人作业-软件产品案例分析
  13. maven构建ssm工程
  14. linux定时执行脚本
  15. python 生成 exe
  16. 如何修改steam中dota服务器,STEAM玩刀塔自走棋如何设置_STEAM玩刀塔自走棋教程_玩游戏网...
  17. 手机html像素,手机分辨率和网页中的PX是一回事吗?
  18. 删除文件时提示:无法读源文件或磁盘之解决办法
  19. 可以同情弱者,别同情弱势!
  20. cf C. Counting Kangaroos is Fun

热门文章

  1. docker-compose是干什么的?
  2. 公布13年年报的股票中,个人进入前十大流通股东的股东一览。 截止2014年03月13日
  3. 思科Catalyst 9K
  4. Linux paramiko模块以及公钥私钥
  5. java中sql查询语句_JAVA中用 SQL语句操作小结
  6. java批量执行查询sql语句_如何从Java执行多个SQL语句
  7. 05-linux日志管理-04-journalctl 命令(查询、日志清理、大小限制)
  8. 博士申请 | 新加坡国立大学Robby T. Tan教授招收CV方向全奖博士/博后/访问学生
  9. Java必看电子书,从小白到大神一网打尽免费送
  10. python 加密库_Python加密库入门