def parseConnForConnStatusList(connFile): count = 0 with open(connFile, 'r') as f: connList = f.read() connList = connList.split('||') for conn in connList: try: ##################################################### # 从文件中提取数据,赋值变量 time = float(re.findall('(?<=time\": ).*?(?=,)', conn)[0]) apMac = re.findall('(?<=Access ).*?(?= )', conn)[0] # Quality=100/100 level=78/100 level=0/100}"}|| # Quality=33/70 level=-77 }"}|| # Access Not-Associated dBm}"}|| # Access Not-Associated Quality:0 level:0 level:0}"}|| if re.findall('Not-Associated', conn): apMac = 'Not-Associated' level = 0 channel = 0.0 elif len(re.findall('level', conn)) == 1: level = int(re.findall('(?<=level=).*?(?= )', conn)[0]) channel = float(re.findall('(?<=Frequency:).*?(?= )', conn)[0]) else: # 根据公式quality = (level + 110) / 70 * 100还原level为接收信号强度 tmp = int(re.findall('(?<=level=).*?(?=/\d+ )', conn)[0]) level = int(tmp * 70 / 100 - 110) channel = float(re.findall('(?<=Frequency:).*?(?= )', conn)[0]) ##################################################### ##################################################### # 解析数据写入ConnStatusList connStatus = Status.ConnStatus() connStatus.timestamp = int(time * 1e6) if re.findall('(?<=dev\": \").*?(?=\")', conn)[0] == 'wlan0': connStatus.W0APMac = apMac connStatus.W0level = level connStatus.W0channel = channel elif re.findall('(?<=dev\": \").*?(?=\")', conn)[0] == 'wlan1': connStatus.W1APMac = apMac connStatus.W1level = level connStatus.W1channel = channel else: pass Status.ConnStatusList.append(connStatus) ##################################################### except: count += 1 print("try-except错误次数:{}".format(count))