【发布时间】:2016-07-11 05:15:07
【问题描述】:
我正在编写一些代码以从串行接口读取并返回接收到的数据的整数值。
看来我需要从中删除"\r\n"。我试过分裂,但它不起作用。
这是我的代码:
import time
import serial
import string
ser = serial.Serial(
port='/dev/ttyACM1',
baudrate = 9600,
parity=serial.PARITY_NONE,
stopbits=serial.STOPBITS_ONE,
bytesize=serial.EIGHTBITS,
timeout=1
)
counter = 0
while 1:
x = ser.readline()
if "t" in x:
print x
x = int(x)
print x
print "temp"
elif "h" in x:
print "hum "
elif "g" in x:
print "gas "
else:
pass
time.sleep(1)
然后我有这个错误:
Traceback (most recent call last):
File "/home/pi/read.py", line 26, in <module>
x=int(x)
ValueError: invalid literal for int() with base 10: 't0\r\n'
有人可以帮忙吗?
【问题讨论】:
-
您需要删除字母,
t是导致您的问题的原因 -
错误很清楚 - 输入字符串无法转换为 int (由于字符串中有“t”,您如何将其明确转换为 int?)您需要对
t在尝试转换之前。什么样的加工?我会让你自己想办法。
标签: python python-2.7 integer pyserial