使用python从文件中提取字符串并按顺序排列

时间:2016-11-18 13:17:22

标签: python string

我有一个文本文件,填充了以下内容:

   "": "<a href=\"#\" class=\"tree-title\" title=\"IP: 10.0.0.1\nHostname: hello1\nModel: 2901\nVersion: 1.1.1.1_80000\nState: Normal\">hello1(10.0.0.1)</a>"
  },
  {
    "": "<a href=\"#\" class=\"tree-title\" title=\"IP: 10.0.0.2\nHostname: hello2\nModel: 2911\nVersion: 1.1.1.1_80000\nState: Normal\">hello2 (10.0.0.2)</a>"
  },
  {
    "": "<a href=\"#\" class=\"tree-title\" title=\"IP: 10.0.0.3\nHostname: hello3\nModel: 2911\nVersion: 1.1.1.1_80000\nState: Normal\">hello3(10.0.0.3)</a>"
  },
  {

它没有正确的结构,因为它被刮掉并转储到文本文件中。 有超过100个此类细分。 尽管看起来如此,但页面并不仅仅是html,因此我不能简单地将数据提取为结构化形式。

现在我想使用Python在有序列表中仅提取hostname, Model numberIP address

所以它在新行中看起来像下面这样:

hostname: hello1       Model No: 2901       IP address: 10.0.0.1<br>
hostname: hello2       Model No: 2911       IP address: 10.0.0.2<br>
hostname: hello3       Model No: 2911       IP address: 10.0.0.3

但我很难找到如何做到这一点,首先从第一段中提取必要的信息,然后从下一段中提取必要的信息。

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:0)

我不会完全回答这个问题,因为你没有向我们展示任何代码。相反,我会给你一些有用的提示:

我的方式:

  1. strip()远离任何新行字符和文件中的任何空格
  2. 使用正则表达式匹配您需要的组。您可以使用this one
  3. Regex101还有一种很好的方法可以生成不同语言的所需代码,因此您可以在进行一些自我处理后完成。 (但是,出于学习目的,我不推荐它)
  4. 查看re模块并实现上述正则表达式。你可以read the docs为此
  5. 当然,您必须自己管理如何处理文件的打开,阅读其内容,在其上应用以上所有内容并按照您的喜好订购数据。祝你好运。

    Here's a starting point