1
目前,我将数据从UDP客户端,看起来像这样写着:蟒蛇正则表达式读取原始UDP数据转换成3D点
X,-3.6958579946845745e+001,Y,-1.6998436983768425e+001,Z,-8.2843220475401704e+000
X,-3.6958578049325865e+001,Y,-1.6998421509164846e+001,Z,-8.2843157671767944e+000
X,-3.6958558150477288e+001,Y,-1.6998528495040631e+001,Z,-8.2843652460239454e+000
我已经设置了读取服务器中的原始数据,然后我需要将数据解析为3个单独的值。
import socket
UDP_IP_ADDRESS = ''
UDP_PORT_NO = 5005
serverSock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
serverSock.bind((UDP_IP_ADDRESS, UDP_PORT_NO))
while True:
data, addr = serverSock.recvfrom(4096)
x,y,z = parse_data(raw_data) #parse into 3 distinct values
我卡在实际界定parse_data()
功能的一部分。我只熟悉逗号分隔或空格分隔行的简单解析。我尝试使用txt2re,但无法理解我需要创建的常规表达式。
定义的parse_data()
函数使用regular expressions
也似乎是合适的,因为它能够提供低延迟。一个快速的班轮将是非常有益的。
你需要获取完整的数字作为一个字符串值(例如'-3.6958579946845745e + 001'),或者你需要捕获的幅值分开(例如'xValue = -3.6958579946845745'和'xMagnitude = 1')? –