Python搜索和打印值

时间:2017-04-17 17:46:35

标签: python python-2.7

以下是文件输出。

vNIC Template:
Name: vNIC-120-A
Type: Updating Template
Fabric ID: A B

Ethernet Interface:
    Name: 2-native
    Dynamic MAC Addr: Derived
    Default Network: Yes
    State: progress

    Name: nfs
    Dynamic MAC Addr: Derived
    Default Network: No

    Name: vmotion
    Dynamic MAC Addr: Derived
    Default Network: No 

如何验证名称:2-native name 2-native exits。

我可以使用下面的代码是否存在不是:

Counting the "string" occurrence in a file
def count_string_occurrence():
   string = "2-native"
   f = open("search.txt")
   contents = f.read()
   f.close()
   print "Number of '" + string + "' in file", contents.count("2-native")

在我的情况下,我搜索并找到2-Native关键字。 我想打印2-native的状态值和Dynamic Mac Addr值。以下是参考资料

    Name: 2-native
    Dynamic MAC Addr: Derived
    Default Network: Yes
    State: progress

如果我搜索“vNIC模板” 我想打印类型值和Fabric值。

1 个答案:

答案 0 :(得分:3)

我想你可以使用类似的东西:

import re
keyword = re.escape("2-native")
result = re.findall(r"Name: {}.*?Addr: ([\w]+).*?State: (.*?)$".format(keyword), contents, re.IGNORECASE | re.DOTALL | re.MULTILINE)
if result:
    mac_addr = result[0][0]
    state = result[0][1]
    print(mac_addr, state)
    # Derived progress

Demo