1
我正在为我的一个项目使用UDP套接字程序来读取来自EEG耳机的传入数据。然后,我使用这些数据来控制机器人手臂中的伺服电机。我用来创建套接字并打印数据的代码正常工作。如何在Python中过滤来自套接字的传入数据?
import socket
import subprocess
UDP_IP = "169.254.110.133"
UDP_PORT = 50000
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind((UDP_IP, UDP_PORT))
while True:
(data,addr) = sock.recvfrom(1024)
print(data)
正在进入的数据是从耳机原始EEG数据和它看起来像这样在终端:
SourceTime 31972
TargetCode 1
ResultCode 0
Feedback 1
PauseApplication 0
CursorPosX 717
CursorPosY 2047
CursorPosZ 2047
此数据具有33个不同的部分,每个部分几毫秒。数据总是以相同的顺序出现。对于我的代码,我只需要从数据中获取几条信息(TargetCode,ResultCode和Feedback)。如何过滤掉这些部分并在我的代码中使用它们。有没有办法查找TargetCode并复制数字?或者因为TargetCode在33部分的数据流中始终是24号,我可以以这种方式提取它吗?
我很欣赏的响应,但是,这并不准确似乎解决我的问题。该程序的服务器端是EEG耳机程序,它只是要求我输入IP和端口号来发送数据。在客户端,我需要一种方法来从传入流中提取几位数据。有没有办法使用for for循环呢?或者某种方式来说,如果它看到单词TargetCode之后获得数字? –
所以你只需要从eeg中提取目标代码?它是一个字符串吗? –
如果它是一个字符串,那么数字提取将是>> int(outputData.split(“\ n”)[1] .split(“”)[1]) –