python - 通过Python解析文件

标签 python

请帮我通过Python脚本解析Nagios配置文件。 我获得了带有主机名的数组,并且需要解析文件并获取其成员。我怎样才能做到这一点?

这是我的代码:

import os
hostgroups=os.popen('grep hostgroup_name /var/log/nagios/objects.cache | cut -f3').read().split('\n')
for i in hostgroups[:-1]:
    print i

如何再次解析文件或如何获取成员。 示例如下:

define hostgroup {
        hostgroup_name  test
        alias   test
        members server1,server2
        }

谢谢。

最佳答案

也许你应该使用 python 而不是 grep 来解析文件:

例如:

with open("/var/log/nagios/objects.cache") as nagiosFile:
    hostgroups = {}
    hostgroup_name = None
    for line in nagiosFile.readlines():
        if "hostgroup_name" in line:
            hostgroup_name = line.split()[-1]
        if "members" in line:
            for members in line.split():
                hostgroups[hostgroup_name] = members.split(",")
    print hostgroups

关于python - 通过Python解析文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34359284/

相关文章:

c++ - GDB 支持 STL 可视化( pretty-print )

python - R 或 Python 中的季节性调整

python - 正则表达式:将其分组为匹配项数组,其间包含 CR

python - 带有整数的 'while' 在 Python 中是什么意思,这个 GCD 代码是如何工作的?

python - 使用 distplot 绘制直方图时 y 轴的单位是什么?

python - 在 Pandas 中执行模糊字符串匹配的更快方法

python交换和赋值

python - 是否有一些轻量级的 python 库可以用 poloyphony 播放音乐片段?

python - 计算argmax的pythonic方法是什么?

python - 分离django项目的开发和生产部分