首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用python从txt文件中提取特定值

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

Stack Overflow用户
提问于 2018-06-30 02:03:25
回答 3查看 426关注 0票数 0

我有一组我正在处理的数据,它们出现在文本文件中,例如:传感器数据

我想从每一行代码中提取RSSI数据。

代码语言:javascript
复制
with open ('datasensorsmall.txt') as f:
for line in f:
    TS, Drop, RX, TX, RSSI, CRCData, light, temp, humidity = line.split("   ")
    print(RSSI)

但是,它只打印第一个RSSI值,然后我得到一个错误值,它说:

代码语言:javascript
复制
"ValueError: not enough values to unpack (expected 9, got 1)". 

我该怎么解决这个问题呢?

EN

回答 3

Stack Overflow用户

发布于 2018-06-30 02:32:28

问题是文本文件中有一个空行。因此,为了避免这种情况,您可以使用类似于

代码语言:javascript
复制
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
EN

Stack Overflow用户

发布于 2018-06-30 02:17:13

您可以使用Regex来实现这一点

代码语言:javascript
复制
import re
with open ('datasensorsmall.txt') as f:
for line in f:
    rssi = re.findall('RSSI:(.*?)\s*C', line)
    print(rssi[0])
票数 0
EN

Stack Overflow用户

发布于 2018-06-30 02:36:17

没有足够的值来解包意味着您的拆分没有产生足够的字符串来分配给所有这些变量。

因此,如果拆分的长度是9,则抛出一个条件,然后进行赋值。

或者避免多次赋值,因为这不太适合它,只需迭代拆分,将与拆分产生的字符串一样多的目标变量赋值给它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51107205

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档