【问题标题】:Any python libs for parsing apache config files?任何用于解析 apache 配置文件的 python 库?
【发布时间】:2008-10-25 23:36:52
【问题描述】:

任何用于解析 apache 配置文件的 python 库,或者如果不是 python,任何人都知道其他语言(perl、php、java、c#)中的这种东西? 因为我可以用 python 重写它们。

【问题讨论】:

  • 要求我们推荐或查找书籍、工具、软件库、教程或其他非现场资源的问题对于 Stack Overflow 来说是题外话,因为它们往往会吸引固执己见的答案和垃圾邮件。
  • 有时,当您无事可做时,即使是固执己见的答案也很好。现在我不再需要这个了,因为这个问题过去曾被问过,但有时即使他们是固执己见,获得建议也是有帮助的。
  • 这么说吧:我不知道这个问题在 9 年前是否有效。但我敢肯定,如果今天被问到它就会关闭;因为它显然违反了“不推荐”规则。你看;这里发生的是 - 所有这些答案都是(实际上只能是)link only 答案。所以,迟早……这些链接可能会中断;然后答案变得毫无用处。
  • 当你想知道他在做某件事时有哪些选择和/或人们对那件事有什么体验时,你会推荐一个人去/询问哪里(假设那些回复的人也使用了他们推荐的东西) ?诚实的问题。如果 SO 不是正确的地方,只是想知道在哪里可以获得这种反馈。
  • stackexchange.com 网络上有一个“新”软件推荐站点,因为我不知道。可能应该加强这个密切的理由来指出这种可能性。

标签: python parsing apache-config


【解决方案1】:

我确实在这里找到了一个有趣的 Apache Config 解析器:http://www.poldylicious.de/node/25

提到的 Apache Config Parser 没有记录,但它确实有效。

【讨论】:

  • 链接已损坏。
【解决方案2】:

Red Hat 的新兴技术小组有 Augeas(用 C 语言编写,但可以使用 Python 绑定),这是一个通用系统配置工具,带有用于读取和写入多种不同配置文件格式的“镜头”。我会考虑研究 Apache 镜头的可用性。

【讨论】:

【解决方案3】:

截至 2016 年有一个使用 pyparsing 编写的新库:

https://pypi.python.org/pypi/parse_apache_configs/

有一些粗糙的边缘,但允许我添加指令并保存到新文件。

来源https://github.com/alextricity25/parse_apache_configs

【讨论】:

    【解决方案4】:

    据我所知,不存在 Python 库,但这里有一个 perl 库: http://packages.debian.org/sid/libapache-configfile-perl

    Package: libapache-configfile-perl
    Priority: optional
    Section: interpreters
    Installed-Size: 124
    Maintainer: Michael Alan Dorman
    Version: 1.18-1
    Depends: perl (>= 5.6.0-16)
    Description: Parse an Apache style httpd.conf configuration file
    
    This module parses the Apache httpd.conf, or any
    compatible config file, and provides methods for
    you to access the values from the config file.
    

    如果您确实用 Python 重写了它,请更新您的帖子以在 PyPI 上提及您的包的名称! :)

    【讨论】:

      【解决方案5】:

      还发布了一个新的解析器。

      它仍然缺乏文档,但是很容易理解。


      例子

      import apache_conf_parser
      import pprint
      
      DEFAULT_VHOST = '/etc/apache2/sites-available/000-default.conf'
      
      vhost_default = apache_conf_parser.ApacheConfParser(DEFAULT_VHOST)
      
      print vhost_default.nodes
      print vhost_default.nodes[0].body.nodes
      
      pprint.pprint( 
          {
              i.name: [i.arguments for i in vhost_default.nodes[0].body.nodes]
          }
      )
      

      【讨论】:

      • 我能够让它工作。不得不使用大量的交互式 help()dir().__dict__,但这也是 python 很棒的原因。
      • 上次更新于 2011 年。我想知道它如何与最新版本的 Apache 配合使用。
      【解决方案6】:

      我认为,ZConfig 曾经附带一个用于解析 Apache 配置文件的模式;它似乎不再是了,但它的目的是解析这些类型的文件并将配置转换为 Python 对象。快速浏览一下文档表明,设置与您想要解析和验证的任何 Apache 选项相对应的 ZConfig 架构并不难。

      http://pypi.python.org/pypi/ZConfig/2.6.0

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-31
        • 2011-11-25
        • 1970-01-01
        • 2018-07-07
        • 1970-01-01
        • 1970-01-01
        • 2013-08-06
        相关资源
        最近更新 更多