Python 将文本文件中的值存储到变量并返回它

Python 将文本文件中的值存储到变量并返回它,python,text,Python,Text,有没有办法读取文本文件中的特定值并将其存储在变量中? 例如,我的文件中有以下损失值: Loss per inch @ 2.500000e+00 GHz = -0.578 dB 是否有一种方法可以仅检索频率点和等号后的值,并将该值存储在可由python函数返回的变量中?尝试以下方法: with open('file.txt') as file: l=[] for line in file.readlines(): line_array = line.split('

有没有办法读取文本文件中的特定值并将其存储在变量中? 例如,我的文件中有以下损失值:

Loss per inch @ 2.500000e+00 GHz = -0.578 dB
是否有一种方法可以仅检索频率点和等号后的值,并将该值存储在可由python函数返回的变量中?

尝试以下方法:

with open('file.txt') as file:
    l=[]
    for line in file.readlines():
        line_array = line.split(' ')
        l.append=(line_array[0], line_array[4], line_array[7])
在此之后,
l
将:

[
  ('Loss', '2.500000e+00', '-0.578')
]
告诉我是否需要不同结构的值,而不是元组列表。

使用正则表达式:

import re
s = """Loss per inch @ 2.500000e+00 GHz = -0.578 dB
Loss per inch @ 5 GHz = -1.011 dB"""
freq = re.findall("\@\s+(.*)GHz", s)
val = re.findall("GHz\s+\=(.*)dB", s)
for i in zip(freq, val):
    print(i)
输出:

('2.500000e+00 ', ' -0.578 ')
('5 ', ' -1.011 ')

你有机会看过字符串方法吗?所以如果不同频率有多行损耗,比如:每英寸损耗@2.500000e+00GHz=-0.578dB每英寸损耗@5GHz=-1.011dB,我该如何更改它?如果有多行要读取,则按顺序执行每次搜索将非常繁琐。您可以使用
re.findall
使m成为所有值的列表?更新的代码段。