使用python从txt文件中提取特定值

时间:2018-06-29 18:03:25

标签: python

我正在处理的一组数据显示在一个文本文件中,例如: 传感器数据

enter image description here

我想从每一行代码中提取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)". 

我该如何解决?

3 个答案:

答案 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,则输入条件,然后进行分配。

或者避免多次分配,因为这不适合它,而只是遍历拆分,将拆分结果分配给与字符串一样多的目标变量。