Python:从fi中查找一行文本中的负数

2024-04-29 05:41:44 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个程序,每分钟轮询服务器的当前Wi-Fi状态,并将这些信息保存到.txt文件中。输出为:

*****当前WIFI信号强度****:链路质量=57/70信号电平=-53 dBm

文本文件包含许多这样的行。我要做的是: -找到所有行中的signal dBm值,并将它们附加到一个数组中,这样我就可以执行其他函数,比如sort和average。我好像不能很好地工作。在

有人知道怎么做吗?在

谢谢你!在


Tags: 文件程序服务器txt信息信号状态质量
3条回答

假设signal level是任何行上唯一的负数,那么可以使用正则表达式和findall函数来搜索文件中的所有负数,并将它们作为字符串列表返回(基于MC93的答案)。在

import re
f_in = open("input.txt", "r")
signal_levels = re.findall("-\d+", f_in.read())

或者,您可以得到一个包含列表理解的int列表。在

^{pr2}$

我将遍历文件中的每一行并在=处拆分行,然后得到最后一个值,在空格处拆分它,然后得到第一个值,该值将生成-53。在

strengthValues = []
f = open("input.txt", "r")
fileLines = f.readlines()
for line in fileLines:
    lineSplit = line.split('=')
    strengthValues.append(lineSplit[-1].split()[0])
print strengthValues

或列表理解:

^{pr2}$
signal_levels = []

try:
    with open("file.txt") as fh:
        lines = fh.readlines()
except IOError as err:
    # error handling

然后您可以使用^{}模块:

^{pr2}$

或者没有它(灵感来自heinst's answer):

for line in lines:
    try:
        value = int(line.split('=')[-1].split()[0])
        signal_levels.append(value)
    except ValueError as err:
        # possible error handling

相关问题 更多 >