Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 当数据以空字符串开头时开始串行读取_Python_Arduino_Pyserial - Fatal编程技术网

Python 当数据以空字符串开头时开始串行读取

Python 当数据以空字符串开头时开始串行读取,python,arduino,pyserial,Python,Arduino,Pyserial,从Arduino到Python读取串行数据时遇到问题。我用一个Serial.println函数从传感器发送一些逗号分隔的数据,从Arduino端,一切似乎都很好。另一方面,在Python中,我应该将数据格式化为float和int,但第一行总是空的,并且在将其转换为float时出错 b = ser.readline() string_n = b.decode() string = string_n.rstrip() sensor = string.split(',') senzor1 = list

从Arduino到Python读取串行数据时遇到问题。我用一个Serial.println函数从传感器发送一些逗号分隔的数据,从Arduino端,一切似乎都很好。另一方面,在Python中,我应该将数据格式化为float和int,但第一行总是空的,并且在将其转换为float时出错

b = ser.readline()
string_n = b.decode()
string = string_n.rstrip()
sensor = string.split(',')
senzor1 = list(filter(None, sensor))
print(sensor1)
我尝试使用此选项筛选空字符串,但结果是:

[]
['-9.84', ' 27']
['-5.14', ' 29']
['-13.83', ' 25']
['0.82', ' 31']
否则,第一行为[“”],以传感器读数开始


所以,我这边只有一个Serial.println。您知道如何删除此空列表或如何改进它吗?

您无法避免从列表内部创建列表

您可以执行以下任一操作:

b = ser.readline()
string_n = b.decode().strip()
sensor1 = [x.strip() for x in string_n.split(',') if x.strip()]
if sensor1:
    print(sensor1)
或:


您无法避免从列表内部创建列表

您可以执行以下任一操作:

b = ser.readline()
string_n = b.decode().strip()
sensor1 = [x.strip() for x in string_n.split(',') if x.strip()]
if sensor1:
    print(sensor1)
或:


在传感器开始工作之前,我设法在Arduino上串行打印零作为初始状态,这样它将在开始时读取零,而不是空的空间,并且不会影响以后的工作。谢谢你的帮助,汤姆。

在传感器开始工作之前,我设法在Arduino上串行打印零作为初始状态,这样一来,它将在开始时读取零,而不是空的空间,并且不会影响以后的工作。感谢您的帮助,Tom。

我想您可以创建一个预先填充了零的数组,然后再添加值?或者,你可以删除它踢出的第一个列表吗?b的具体内容是什么?我想你可以创建一个预先填充了零的数组,然后再添加你的值?或者,你可以删除它踢出的第一个列表吗?b的内容到底是什么?还是一样,第一次打印还是[]还是一样,第一次打印只是[]