Python 替换和删除无法删除回车 return 和新行 \r\n
Python replace and strip not working to remove carriage return and new line \r\n
首先,很抱歉我问了这个问题,因为从外观上看,有数百篇关于从变量中删除 \n 等的帖子,但似乎对我没有任何作用。
所以我使用 arduino 从传感器采样值并将它们通过串行发送到我的 python 脚本并使用 serial.readline() 读取行。格式非常奇怪,我收到以下格式的消息:
b'100\r\n'
b''
b''
b''
b'101\r\n'
b''
b''
b'102\r\n'
我正在使用 if num 语句删除空行。我不确定为什么要在前面添加 b,但我可以使用替换以及撇号删除该罚款。然而没有什么,不是替换也不是剥离摆脱 \r\n。我究竟做错了什么?这是我的代码
try:
num=ser.readline()
if num:
print(num)
num=str(num)
num = num.replace('b','')
num = num.replace("'",'')
num = num.replace('\r\n','')
num=num.strip('\n\r')
num=int(num)
print(num)
这段代码的输出是:
b'100\r\n'
100\r\n
b'101\r\n'
101\r\n
b'102\r\n
102\r\n
调试num变量时要注意的一些奇怪的事情在我做之前似乎没有创建
num=str(num)
或者至少它没有出现在我的 spyder 变量选项卡中。我也需要这一行,因为没有它,替换会抛出一个类型错误,说 "a bytes-like object is required, not 'str'"
N.B。当我不转换为字符串时,它会抛出类型错误,指出它不应该是字符串!
其次使用 " " 或 ' ' 来封装 b 有效,只有 "'" 对 apstrophy 有效,因为它假设我正在尝试写评论,但 "\r\n" 和 '\r\n' 适用于 \r\n.
所有帮助将不胜感激
b'100\r\n'
是(字节)字符串的内部表示,你不需要做任何特殊的事情就可以将它传递给 int
:
>>> s = b'100\r\n'
>>> print(s)
b'100\r\n'
>>> int(s)
100
>>>
首先,很抱歉我问了这个问题,因为从外观上看,有数百篇关于从变量中删除 \n 等的帖子,但似乎对我没有任何作用。
所以我使用 arduino 从传感器采样值并将它们通过串行发送到我的 python 脚本并使用 serial.readline() 读取行。格式非常奇怪,我收到以下格式的消息:
b'100\r\n'
b''
b''
b''
b'101\r\n'
b''
b''
b'102\r\n'
我正在使用 if num 语句删除空行。我不确定为什么要在前面添加 b,但我可以使用替换以及撇号删除该罚款。然而没有什么,不是替换也不是剥离摆脱 \r\n。我究竟做错了什么?这是我的代码
try:
num=ser.readline()
if num:
print(num)
num=str(num)
num = num.replace('b','')
num = num.replace("'",'')
num = num.replace('\r\n','')
num=num.strip('\n\r')
num=int(num)
print(num)
这段代码的输出是:
b'100\r\n'
100\r\n
b'101\r\n'
101\r\n
b'102\r\n
102\r\n
调试num变量时要注意的一些奇怪的事情在我做之前似乎没有创建
num=str(num)
或者至少它没有出现在我的 spyder 变量选项卡中。我也需要这一行,因为没有它,替换会抛出一个类型错误,说 "a bytes-like object is required, not 'str'"
N.B。当我不转换为字符串时,它会抛出类型错误,指出它不应该是字符串!
其次使用 " " 或 ' ' 来封装 b 有效,只有 "'" 对 apstrophy 有效,因为它假设我正在尝试写评论,但 "\r\n" 和 '\r\n' 适用于 \r\n.
所有帮助将不胜感激
b'100\r\n'
是(字节)字符串的内部表示,你不需要做任何特殊的事情就可以将它传递给 int
:
>>> s = b'100\r\n'
>>> print(s)
b'100\r\n'
>>> int(s)
100
>>>