gpt4 book ai didi

string - PySerial 和 readline() 返回二进制字符串 - 转换为常规字母数字字符串?

转载 作者:行者123 更新时间:2023-12-01 14:38:38 25 4
gpt4 key购买 nike

我遇到了 PySerial 和 Python (3.3) 的问题:我正在运行的代码(现在,这只是一个简单的测试用例)如下:

ser = serial.Serial('/dev/ttyACM0', 115200)
result = ser.readline()
parsed = result.split(",")

这给出了以下错误:
TypeError: type str doesn't support the buffer API

我的愚蠢错误是什么?我想我已经将此追溯到 PySerial 的 readline 正在返回一个二进制字符串(python 3 中的新功能?)并且在针对二进制字符串运行时字符串操作“split”失败 - 如果你运行它可以正常工作:
'1234, asdf, 456, jkl'.split(",")

这给出了预期:
['1234', 'asdf', '456', jkl']

但随后运行:
b'1234, asdf, 456, jkl'.split(",")

给出了上面的错误。是否有不同的 readline 方法可以使用?我应该用 read 编写自己的代码(并且一直读到它看到/r/n)还是可以轻松转换为满足 str.isalnum() 的字符串?谢谢!

最佳答案

最快的解决方案是使用一个名为 binascii 的 python 模块,该模块具有一系列用于将二进制字符串转换为 ascii 字符串的函数:http://docs.python.org/2/library/binascii.html

编辑:
b 表示它是一个字节数组而不是文字字符串。将字节数组转换为文字字符串的正确方法是使用 str() 函数:

str(b'1234, asdf, 456, jkl', 'ascii').split(",")

这给出了你想要的输出:
['1234','asdf','456',jkl']

我希望这会有所帮助!

关于string - PySerial 和 readline() 返回二进制字符串 - 转换为常规字母数字字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13373415/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com