Ubuntu 上的 Python 3 上的字节到字符串的编码不稳定

2024-05-21

我是 Python 新手,正在研究传感器。 我正在逐行构建代码,但在字节到字符串的编码/解码部分遇到问题。同样的代码,有时有效,有时无效。

这是代码:

import serial
import time
import os

port = serial.Serial("/dev/ttyUSB0", baudrate=9600, timeout=1,      bytesize=8)
f_w = open('/home/myname/python_serial_output.txt','r+')

port.send_break()

while True:
    op = port.read(2)
    op_str = op.decode('utf-8')
    f_w.write(op_str)
    print(op_str)

第一次没成功,但第二次就成功了。为什么?

这是我得到的错误:

myname@Toshiba:~$ python3 serial_test.py 
Traceback (most recent call last):
  File "serial_test.py", line 13, in <module>
    op_str = op.decode('utf-8') 
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x82 in position 0: invalid start byte

myname@Toshiba:~$ python3 serial_test.py 
Ex
pl
or
er

如何消除其成功运行的歧义?


发生这种情况可能是因为您的字符串包含非 ASCII 字符。当您再次运行代码时,字符串中没有非 ASCII 字符,因此它运行成功。

您可以使用encode()函数对非ascii字符进行编码

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Ubuntu 上的 Python 3 上的字节到字符串的编码不稳定 的相关文章

  • 我可以使用 Django 的 send_mail 来发送邮件吗?

    我正在 VPS 上设置一个基于 Django 的业余爱好网站 但我对 Django 的电子邮件系统配置感到困惑 我的服务器正在使用 sendmail 成功向我发送技术电子邮件 例如来自fail2ban 然而 所有与 Django 相关的谷歌
  • 在 Raspberry Pi 上解码 utf-8 问题

    我在树莓派上解码 utf 8 时遇到问题 相同的代码在我的计算机上运行 但不适用于树莓派 有什么线索吗 在我的笔记本电脑上 预期输出 Python 3 5 3 default Sep 27 2018 17 25 39 GCC 6 3 0 2
  • Python 3.5 中的类型提示是什么?

    Python 3 5 中最受关注的功能之一是类型提示 一个例子类型提示中提到本文 http lwn net Articles 650904 and this one http lwn net Articles 640359 同时还提到负责任
  • 在 Doctest 中使用 Mock?

    我正在使用文档测试 我想知道对执行外部操作 例如发送电子邮件 连接到服务器等 的函数进行文档测试的正确方法是什么 使用 Mock 似乎是答案 但它会使函数的文档字符串变得混乱 例如 class SSHConnection BaseConne
  • 安装 r-base;依赖:r-建议缺失?

    你好 我正在尝试为 Ubuntu 16 04 安装 r base 我已按照以下步骤操作https cran r project org bin linux ubuntu README html https cran r project or
  • 从3.4升级后如何在python3.5中使用pip?

    我在 Ubuntu 上 我有 python2 7 它是预安装的 python3 4 今天之前使用过 和 python3 5 我今天升级到的 并行安装 他们自己都工作得很好 但是 我想用pip安装一些软件包 我不知道如何为我的 3 5 安装执
  • Pyserial 不能很好地与虚拟端口配合使用

    动机 我想开始学习如何使用python库Pyserial https github com pyserial pyserial 这似乎是一个非常好的图书馆 适合很多人 我想将它用于即将进行的项目 在该项目中我必须自动化串行通信 环境 我运行
  • 使用 python3.5 将 Arduino 的实时数据链接到 pyqt5 的 LCDNumber

    我对制作 GUI 还很陌生 我为一个项目设计了一个项目 我希望在数据从 Arduino 传入时更新 LCD 我正在使用 pyqt5 来转换我的 Qtdesigner GUI 问题是我不知道如何将传入数据链接到 GUI 目前 我有一个程序可以
  • 为 mysql_options() 提供了不受支持的选项

    我已经在我的本地计算机上安装了 mysql server 和 mysql workbench 操作系统为 Ubuntu 16 04 我可以通过 CLI 连接到 mysql server 但不能通过 mysql workbench mysql
  • python google Sheets API 出现无效 JSON 有效负载错误

    我正在尝试使用 Google Sheets API 将新行附加到现有的 Google Sheet 中 身份验证已成功进行 并且代码能够读取工作表的内容 但是 当我尝试使用service spreadsheets values append
  • 如何在 Ubuntu 上安装 Impala? [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我要安装Impala https impala apache org 在 Ubuntu 实例上 到目前为止 以下方法都不起作用 如何在 U
  • 从 PyQt GUI 连接到串行

    我编写了一个程序来从串行发送和接收数据 但是我有一个问题 我想创建一个函数 connect 或一个类 当我按下按钮时 该函数就会被执行 但是如果我创建 MainWindow 类中的这个函数 TestThread 类中的变量 ser 未初始化
  • 无法使用 sysctl 更改每个进程的最大打开文件数

    我的实际极限是1024 ulimit a core file size blocks c 0 data seg size kbytes d unlimited scheduling priority e 0 file size blocks
  • 无法启动redis.service:单元redis-server.service被屏蔽

    我在 ubuntu 16 04 上安装了 Redis 服务器 但是当我尝试使用启动redis服务时 sudo systemctl start redis 我收到消息 Failed to start redis service Unit re
  • 如何在Python中计算输出的均值、众数、方差、标准差等?

    我有一个基于概率的简单游戏 每天我们抛一枚硬币 如果正面朝上 我们就赢了 我们会得到 20 美元 如果我们抛硬币 反面朝上 那么我们会在月底损失 19 美元 28 天 我们可以看到我们失去或赚了多少 def coin tossing gam
  • 如何在 Ubuntu 16.04 上的 Python 3 / Matplotlib 2 中安装底图?

    I tried pip3 install basemap but Basemap https sourceforge net projects matplotlib files matplotlib toolkits 好像不在 PyPI 上
  • 由于WiredTiger.turtle权限,Mongodb无法启动

    我试图在 ubuntu 16 04 上启动 mongodb 4 0 4 但数据库拒绝了我的所有尝试 我检查了 mongodb 日志文件 发现名为 WiredTiger turtle 的文件没有所需的权限 这里记录错误 2018 11 26T
  • 如何在树莓派上更新到最新的 python 3.5.1 版本?

    我昨天拿到了 Raspberry Pi 我已经在尝试用它来编写代码了 我有一个计划在其上运行的程序 但它仅与 Python 版本 3 5 0 或 3 5 1 兼容 并且我在互联网上找到的所有内容似乎都已经过时 与 Python 2 有关 或
  • PySerial 和多个 Python 安装出现问题

    我的 Windows 7 计算机上有 Python 2 4 4 和 3 1 3 我想使用 PySerial 听说是内置的 所以我尝试了一下import serial在两个版本中 两者都造成了Import Error 然后我从以下位置下载了w
  • pyenv 不会构建新的 python 版本(挂起)

    我跟着来自西北大学的教程 https amaral northwestern edu resources guides pyenv tutorial安装 pyenv 命令似乎有效 但当我跑步时 pyenv install 3 7 0 或任何

随机推荐

  • MaskedTextBox 的多行掩码

    我有一个MaskedTextBox在我的 Winforms 应用程序中 我需要一个多线掩码 例如 999999 r n 999999 r n 999999 r n 00 00 0000 我读了msdn文档 http msdn microso
  • 限制文本区域中每行的字符数

    我整个周末都在寻找解决这个难题的方法 但尚未找到一个可以正常工作的解决方案 我想要实现的是限制文本区域中每行的字符数 不是相同地限制它们 而是我选择的每行不同的字符数 例如 我只想在我的文本区域中包含 4 行 第 1 2 和 3 行将限制为
  • 使用 Javascript 在 Imacros 中循环

    我如何使用 javascript 循环 imm imacros 脚本 我搜索了一下 发现了这个 for i 0 i lt n i iimPlay marconame iim 但当我使用它时 我的浏览器 Firefox 18 挂起 for i
  • 如何使用 Ghostscript DLL 将 PDF 转换为 PDF/A

    如何使用 GhostScript DLL 将 PDF 转换为 PDF A 我知道我必须调用 gsdll32 dll 的导出函数 其名称为 gsapi init with args 但如何传递正确的参数 顺便说一句 我正在使用 C 请尝试从命
  • 使用表达式获取方法的名称

    我知道网站上有一些关于此问题的答案 如果这有任何重复 我深表歉意 但我发现的所有答案都没有做我想做的事情 我正在尝试指定方法信息 以便我可以通过不使用字符串以类型安全的方式获取名称 所以我试图用一个表达式来提取它 假设我想获取此接口中方法的
  • 托管类型与非托管类型

    I was 读一篇文章 https learn microsoft com en US dotnet csharp language reference keywords sizeof关于如何使用sizeofC 中的运算符 他们说 用于获取
  • gdb 声称它不知道如何运行

    我在 Mac Pro 上的 Mac OS X 10 6 6 上使用 Xcode 3 2 3 来构建 GrowlTunes 的修订版 5fd480ef577f咆哮开发存储库 http growl info hg growl developme
  • ssh:连接到主机 bitbucket.org 端口 22:连接超时致命

    整个错误是 ssh connect to host bitbucket org port 22 Connection timed out fatal The remote end hung up unexpectedly 当我从位于不同服务
  • 无法在 PHPUnit 中使用数据提供程序运行单个测试

    使用命令行运行测试时遇到问题 如果我像这样运行 phpunit phpunit no configuration filter testAdd DataTest DataProviderTest php 效果很好 但是我们使用正则表达式来准
  • 如果主引用指向 null,WeakReference 或 SoftReference 有何不同

    我正在读关于WeakReference https docs oracle com javase 10 docs api java lang ref WeakReference html and SoftReference https do
  • 有没有办法以编程方式更改 cosmos db 表上的 TTL

    As the title describes I m trying to change the TTL of a cosmos db table I couldn t find anything in c powershell arm te
  • 将动物园转换为数据框

    我转换了一个zoo time series到数据框中R日期成为数据框的索引 有没有办法将日期表示为数据框中的普通列 monthly df lt data frame monthly zoo head monthly zoo head mon
  • 如何关闭 webrtc 数据通道?

    我无法使用以下方法 因为我只使用数据通道 不使用 getUserMedia
  • C# 获取 Console.Writeline(" ") 说话 (" ")

    case Start VS Console WriteLine Starting Visual Studio s System Diagnostics Process Start devenv exe break 我怎样才能使用字符串输入来
  • 怎么让画笔变得光滑,中间没有线条

    大家好 正如你在之前的画笔中看到的 中间有线条 不太顺利 如何使其平滑 如何删除该行 我用混合创建它
  • 在后台服务中持续获取位置更新

    我正在开发需要在后台服务中持续获取位置更新的应用程序 我已经使用了它正在使用的后台粘性服务 但是 即使我添加了启动广播并在那里启动了服务 启动完成后服务也没有启动 服务启动并立即被杀死 另外 这不适用于奥利奥 服务在应用程序关闭几分钟后停止
  • 为什么通过派生类对基类的引用与 :: - 运算符不明确?

    所以我想知道为什么以下钻石问题的代码片段无法编译 我知道这个问题通常是通过虚拟继承来解决的 我不是故意使用它的 该代码只是为了展示我的问题 即为什么编译器称此不明确 因此 我在 struct Base 中声明了两个成员变量 因为这两个子类
  • Jquery ajax请求,等待最新请求完成

    我有一个文本框 每次用户输入一个字母时 我都会使用 ajax 请求进行搜索 并为用户 实时 显示结果 通常 当用户键入字母时 发出请求所需的时间比用户输入新字母所需的时间更长 因此在第一个请求结束之前发出新请求 如果第一个请求能够在我执行下
  • 如何在python 3.7中生成条形码

    我正在使用 python 3 7 为了生成条形码 我尝试使用安装 pyBarcode 库pip install pyBarcode 但它显示以下错误 找不到满足 pyBarcode 要求的版本 来自版本 找不到 pyBarcode 的匹配分
  • Ubuntu 上的 Python 3 上的字节到字符串的编码不稳定

    我是 Python 新手 正在研究传感器 我正在逐行构建代码 但在字节到字符串的编码 解码部分遇到问题 同样的代码 有时有效 有时无效 这是代码 import serial import time import os port serial