Arduino-python读取串行布局
我正在使用Arduino-python读取串行布局,python,arduino,pyserial,Python,Arduino,Pyserial,我正在使用pyserial从我的Arduino读取一些值。 使用serial.readlines(), 但这些值看起来像: BL:左转\n' b'r:右转向\n' 我怎样才能摆脱这些b'和\n'? 替换它们不起作用…b表示字符串所处的编码–它实际上不是字符串的一部分,因此无法替换它。与每个“”类似,它们表示它是一个字符串。(4和'4'是两件不同的事情,但是print(…)这两件事中的任何一件都会得到相同的结果。)您只需要用 要对字符串重新编码,这应该足够了: b'string'.decode
pyserial
从我的Arduino读取一些值。
使用serial.readlines(),
但这些值看起来像:
BL:左转\n'
b'r:右转向\n'
我怎样才能摆脱这些b'
和\n'
?
替换它们不起作用…b
表示字符串所处的编码–它实际上不是字符串的一部分,因此无法替换它。与每个“
”类似,它们表示它是一个字符串。(4
和'4'
是两件不同的事情,但是print(…)
这两件事中的任何一件都会得到相同的结果。)您只需要用
要对字符串重新编码,这应该足够了:
b'string'.decode('ascii')
如果您使用的是Unicode,请使用
b'string'.decode('utf-8')
相反。有关此目的的更多信息,请参阅
我强烈建议您在使用Arduino启动应用程序之前熟悉Python作为一种语言。亲身体验/实验是一件好事(tm),但在开始之前,你应该对基本原理有一个纯粹的了解。Python维护人员有一个专为完全初学者设计的程序,我建议您从开始。您是否尝试过使用“打印”和从readlines获得的值?@FredS我的想法与您的想法相同,但数据是二进制的<在本例中,code>print
的作用与repr
类似。在python 2.7中执行“print”时,似乎对我有效。也许在python 3+中有所不同?也许。。。我正在使用python3+,但它并没有这样工作…谢谢-但也许我应该更好地解释它。。。我知道我可以根据您的建议删除\n。。。然而,我需要一个干净的输出,没有“”,没有“b”在开始…我的答案是书面的b
是字符串的编码;它不是字符串本身的一部分。
b'string'.decode('utf-8')
Python 3.4.2 (default, Oct 19 2014, 17:55:38)
[GCC 4.2.1 Compatible Apple LLVM 6.0 (clang-600.0.54)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> b'l: steer left \n'
b'l: steer left \n'
>>> _.decode('ascii')
'l: steer left \n'
>>> print(_)
l: steer left
>>> exit()