我正在处理的一组数据显示在一个文本文件中,例如: 传感器数据
我想从每一行代码中提取RSSI数据。
with open ('datasensorsmall.txt') as f:
for line in f:
TS, Drop, RX, TX, RSSI, CRCData, light, temp, humidity = line.split(" ")
print(RSSI)
但是,它只打印第一个RSSI值,然后出现一个错误值:
"ValueError: not enough values to unpack (expected 9, got 1)".
我该如何解决?
答案 0 :(得分:1)
问题是文本文件中有空白行。因此,为避免此类情况,您可以使用类似
的方法with open ('datasensorsmall.txt') as f:
for line in f:
if not line.strip(): # this line will ignore blank line
TS, Drop, RX, TX, RSSI, CRCData, light, temp, humidity = line.split()
print(RSSI)
答案 1 :(得分:0)
您可以为此使用正则表达式
import re
with open ('datasensorsmall.txt') as f:
for line in f:
rssi = re.findall('RSSI:(.*?)\s*C', line)
print(rssi[0])
答案 2 :(得分:0)
没有足够的值可解压缩,这意味着您的拆分未产生足够的字符串来分配给所有这些变量。
因此,如果拆分的长度为9,则输入条件,然后进行分配。
或者避免多次分配,因为这不适合它,而只是遍历拆分,将拆分结果分配给与字符串一样多的目标变量。