代码之家  ›  专栏  ›  技术社区  ›  stanleyxu2005

如何在python中从etc/sysconfig中检索值

  •  0
  • stanleyxu2005  · 技术社区  · 14 年前

    我在/etc/sysconfig/中有一个配置文件foo。这个Linux文件与ini文件非常相似,但没有节声明。

    为了从这个文件中检索一个值,我编写了一个shell脚本,如下所示:

    source /etc/sysconfig/FOO
    echo $MY_VALUE
    

    现在我想用Python做同样的事情。我尝试使用configparser,但是configparser不接受类似于ini文件的格式,除非它有一个节声明。

    有没有办法从这样的文件中检索值?

    2 回复  |  直到 9 年前
        1
  •  1
  •   Noufal Ibrahim    14 年前

    我想您可以使用 subprocess 模块和读取它的输出。和它一起使用 shell 选项设置为 True .

        2
  •  1
  •   codeape    14 年前

    如果你想用 ConfigParser 你可以这样做:

    #! /usr/bin/env python2.6
    
    from StringIO import StringIO
    import ConfigParser
    
    def read_configfile_without_sectiondeclaration(filename):
        buffer = StringIO()
        buffer.write("[main]\n")
        buffer.write(open(filename).read())
        buffer.seek(0)
        config = ConfigParser.ConfigParser()
        config.readfp(buffer)
        return config
    
    if __name__ == "__main__":
        import sys
        config = read_configfile_without_sectiondeclaration(sys.argv[1])
        print config.items("main")
    

    该代码创建一个内存中类似文件的对象,其中包含一个[main]节头和指定文件的内容。然后,ConfigParser读取类似文件的对象。