Python 我在一个文本文件中有一些数据,我应该如何解析只得到';isakm&x27;和';esp';?

Python 我在一个文本文件中有一些数据,我应该如何解析只得到';isakm&x27;和';esp';?,python,python-3.x,file,Python,Python 3.x,File,我正在为此编写python脚本: eth frames:27 bytes:5286 ip frames:27 bytes:5286 udp frames:11 bytes:2054 isakm frames:11 bytes:2054 esp fram

我正在为此编写python脚本:

eth                          frames:27 bytes:5286
  ip                         frames:27 bytes:5286
    udp                      frames:11 bytes:2054
      isakm                  frames:11 bytes:2054
    esp                      frames:16 bytes:3232

我建议使用适合您的情况的正则表达式,如果数据总是相同的,这很容易,因为您可以对空格长度等进行假设。

给定示例输入,您可以按照以下固定分隔值提取数据:

data = open('data.txt','r')
print(data.read())
印刷品:

tests={'esp','isakm'}   
with open(fn) as f:
    for line in f:
        data=line.split()
        if data[0] in tests:
            print(data[1:])

这会忽略可能有意义的前导空格。然而,从您的问题中不清楚这些空间是否对您的使用有意义

数据总是不一样的:(如何定义
esp
isakm
呢?那些特殊的字符串?具有这种间距的行?它总是以行为导向吗?一旦你精确地定义了你要查找的内容,别人就会更容易帮助你。你也会更容易看到如何解决这个问题。eth是有ip的东西,ip有udp,udp有isakm al所以esp是一个不同的值,所以我只想提取isakm和esp的值。
['frames:11', 'bytes:2054']
['frames:16', 'bytes:3232']