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]) –