我正在使用pyserial
从我的Arduino中读取一些值。
使用serial.readlines()
给我一个包含所有值的数组,
但这些值看起来像:
b'l: steer left \n'
b'r: steer right \n'
如何摆脱这些b'
和\n'
?
取代它们并不起作用......
答案 0 :(得分:0)
b
表示字符串所在的编码 - 它实际上并不是字符串的一部分,因此您无法替换它。与每个'
类似 - 它们表示 是一个字符串。 (4
和'4'
是两个不同的东西,但print(…)
其中任何一个都会得到相同的结果。)您唯一需要做的就是删除最后一个字符(换行符
myvar[:-1]
要重新编码字符串,这应该足够了:
b'string'.decode('ascii')
如果你完全使用Unicode,请使用
b'string'.decode('utf-8')
代替。有关详细信息,请参阅Python manual。
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()