【已解决】python串口打印数据显示为b‘xxx‘的解决办法

本文讲述了如何在Python中使用serial库处理串口数据时,遇到字符串显示为b...格式的问题,解释了原因(Python字符串为Unicode编码,需转化为字节),提供了通过.decode(UTF-8)解决的方法,并验证了其有效性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、问题描述

        需要使用python的serial库去打印串口数据,期望打印出字符串数据。

        但实际上打印出来的结果为b'$GNGST,000202.20,,,,,,,*65\r\n'这种类型的。

        代码如下:

import serial
import serial.tools.list_ports
import datetime

ser = serial.Serial("COM8", 460800)    # 打开COM8,将波特率配置为460800,其余参数使用默认值
if ser.isOpen():                        # 判断串口是否成功打开
    print("打开串口成功。")
    print(ser.name)    # 输出串口号
    while True:
        com_input = ser.readline()
        if com_input:   # 如果读取结果非空,则输出
            print(f"{datetime.datetime.now()} {com_input}")
    ser.close()
else:
    print("打开串口失败。")

        输出结果:

二、原因分析

说白了 Python3的字符串的编码语言用的是unicode编码,由于Python的字符串类型是str,在内存中以Unicode表示,一个字符对应若干字节,如果要在网络上传输,或保存在磁盘上就需要把str变成以字节为单位的bytes

python对bytes类型的数据用带b前缀的单引号或双引号表示。

三、解决措施

        修改代码

ser.readline()
修改为
ser.readline().decode('UTF-8')

四、措施验证

        修改后,运行python文件。控制台可正常输出期望的文本。

        验证结束。

五、总结回顾

文章参考:【已解决】为什么Python打印数据显示为b‘XXX’格式_python打印xml文件有b-优快云博客

关于python中 b'xxxx' 转化的问题-优快云博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值